from QT import QtWidgets, QtCore, QT import logging class Log_Handler (logging.Handler) : def __init__(self, widget) : super ().__init__ () self._widget = widget # end __init__ def emit (self, record) : msg = self.format (record) self._widget.append_log.emit (msg) # end def emit # end class Log_Handler class Log_View (QtWidgets.QTextEdit) : append_log = QtCore.Signal (str) def __init__ (self, * args, ** kw) : super ().__init__ (* args, ** kw) self.setReadOnly (True) self.append_log.connect (self.append) # end def __init__ def save_settings (self, settings) : settings.beginGroup ("log-view") settings.setValue ("geometry", self.saveGeometry ()) settings.endGroup () # end def save_settings def restore_settings (self, settings) : settings.beginGroup ("log-view") self.restoreGeometry (settings.value ("geometry" )) settings.endGroup () # end def restore_settings # end class Log_View