GUI: added log_panel
This commit is contained in:
1 parent
0deb44a227
commit
76ff311f94
1 file changed
+32
@@ -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()
|
||||
Reference in new issue
Block a user