1
|
import logging
|
2
|
|
3
|
from PyQt5.QtCore import pyqtSignal, QObject
|
4
|
from PyQt5.QtWidgets import QPlainTextEdit
|
5
|
|
6
|
|
7
|
class LoggerView(logging.Handler, QObject):
|
8
|
append = pyqtSignal(str)
|
9
|
|
10
|
def __init__(self, parent):
|
11
|
super().__init__()
|
12
|
super(QObject, self).__init__()
|
13
|
|
14
|
self.widget = QPlainTextEdit(parent)
|
15
|
self.widget.setReadOnly(True)
|
16
|
self.widget.setFixedHeight(120)
|
17
|
self.append.connect(
|
18
|
lambda msg: self.appendMessage(msg)
|
19
|
)
|
20
|
|
21
|
def emit(self, record):
|
22
|
msg = self.format(record)
|
23
|
self.append.emit(msg)
|
24
|
|
25
|
def appendMessage(self, msg):
|
26
|
self.widget.appendPlainText(msg)
|
27
|
self.widget.verticalScrollBar().setValue(self.widget.verticalScrollBar().maximum())
|
28
|
|
29
|
def write(self, m):
|
30
|
pass
|