36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
import logging
|
|
from PySide6.QtWidgets import (
|
|
QWidget, QVBoxLayout, QTextEdit, QLabel, QSizePolicy
|
|
)
|
|
from PySide6.QtCore import Slot
|
|
|
|
log = logging.getLogger(__name__)
|
|
|
|
class LogConsoleWidget(QWidget):
|
|
"""
|
|
A dedicated widget to display log messages.
|
|
"""
|
|
def __init__(self, parent=None):
|
|
super().__init__(parent)
|
|
self._init_ui()
|
|
|
|
def _init_ui(self):
|
|
"""Initializes the UI elements for the log console."""
|
|
layout = QVBoxLayout(self)
|
|
layout.setContentsMargins(0, 5, 0, 0)
|
|
|
|
log_console_label = QLabel("Log Console:")
|
|
self.log_console_output = QTextEdit()
|
|
self.log_console_output.setReadOnly(True)
|
|
self.log_console_output.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding) # Allow vertical expansion
|
|
|
|
layout.addWidget(log_console_label)
|
|
layout.addWidget(self.log_console_output)
|
|
|
|
self.setVisible(False)
|
|
|
|
@Slot(str)
|
|
def _append_log_message(self, message):
|
|
self.log_console_output.append(message)
|
|
self.log_console_output.verticalScrollBar().setValue(self.log_console_output.verticalScrollBar().maximum())
|