GUI: added log_panel

This commit is contained in:
leonarski_f committed 2025-10-30 16:56:10 +01:00
1 parent 0deb44a227
commit 76ff311f94
1 file changed
+32
+32
View File
@@ -0,0 +1,32 @@
# Python
from PySide6.QtCore import Qt, Signal, QObject
from PySide6.QtWidgets import QDockWidget, QPlainTextEdit
from aaredaqlib.logger_config import QtLogEmitter, QtLogHandler, find_existing_formatter, attach_to_logger
class LogDock(QDockWidget):
def __init__(self, title="Log", parent=None):
super().__init__(title, parent)
self.setAllowedAreas(Qt.BottomDockWidgetArea | Qt.TopDockWidgetArea)
self.view = QPlainTextEdit(self)
self.view.setReadOnly(True)
self.setWidget(self.view)
# connect emitter to append text safely from any thread
self.emitter = QtLogEmitter()
self.emitter.message.connect(self._append_line)
# logging handler
self.handler = QtLogHandler(self.emitter)
self.handler.setFormatter(find_existing_formatter())
def attach_logger(self, logger_name: str = "aareGUI"):
attach_to_logger(logger_name, self.handler)
def _append_line(self, text: str):
self.view.appendPlainText(text)
def clear(self):
self.view.clear()