Mercurial > lcfOS
comparison python/ide/logview.py @ 333:dcae6574c974
Increment to qt5
author | Windel Bouwman |
---|---|
date | Sun, 09 Feb 2014 15:27:57 +0100 |
parents | 7b38782ed496 |
children |
comparison
equal
deleted
inserted
replaced
332:87feb8a23b4d | 333:dcae6574c974 |
---|---|
3 import sys | 3 import sys |
4 import os | 4 import os |
5 import logging | 5 import logging |
6 import datetime | 6 import datetime |
7 | 7 |
8 from PyQt4.QtGui import QApplication, QWidget, QTableView, QVBoxLayout | 8 from qtwrapper import QtGui, QtCore, QtWidgets, Qt |
9 from PyQt4.QtGui import QHeaderView | |
10 from PyQt4.QtCore import Qt | |
11 from PyQt4.QtCore import QAbstractTableModel | |
12 | 9 |
13 def formatTime(t): | 10 def formatTime(t): |
14 t2 = datetime.datetime.fromtimestamp(t) | 11 t2 = datetime.datetime.fromtimestamp(t) |
15 return t2.strftime('%H:%M:%S') | 12 return t2.strftime('%H:%M:%S') |
16 | 13 |
17 class LogModel(QAbstractTableModel): | 14 |
15 class LogModel(QtCore.QAbstractTableModel): | |
18 def __init__(self): | 16 def __init__(self): |
19 super().__init__() | 17 super().__init__() |
20 self.entries = [] | 18 self.entries = [] |
21 self.headers = ['Time', 'Level', 'Logger', 'Message'] | 19 self.headers = ['Time', 'Level', 'Logger', 'Message'] |
22 self.txts = [] | 20 self.txts = [] |
25 self.txts.append(lambda e: str(e.name)) | 23 self.txts.append(lambda e: str(e.name)) |
26 self.txts.append(lambda e: str(e.msg)) | 24 self.txts.append(lambda e: str(e.msg)) |
27 | 25 |
28 def rowCount(self, parent): | 26 def rowCount(self, parent): |
29 return len(self.entries) | 27 return len(self.entries) |
30 | 28 |
31 def columnCount(self, parent): | 29 def columnCount(self, parent): |
32 return len(self.headers) | 30 return len(self.headers) |
33 | 31 |
34 def data(self, index, role): | 32 def data(self, index, role): |
35 if not index.isValid(): | 33 if not index.isValid(): |
40 return self.txts[col](le) | 38 return self.txts[col](le) |
41 | 39 |
42 def headerData(self, section, orientation, role): | 40 def headerData(self, section, orientation, role): |
43 if orientation == Qt.Horizontal and role == Qt.DisplayRole: | 41 if orientation == Qt.Horizontal and role == Qt.DisplayRole: |
44 return self.headers[section] | 42 return self.headers[section] |
45 | 43 |
46 def newLog(self, x): | 44 def newLog(self, x): |
47 self.entries.append(x) | 45 self.entries.append(x) |
48 self.modelReset.emit() | 46 self.modelReset.emit() |
49 | 47 |
50 | 48 |
51 class LogView(QWidget): | 49 class LogView(QtWidgets.QWidget): |
52 """ Log view component """ | 50 """ Log view component """ |
53 def __init__(self, parent=None): | 51 def __init__(self, parent=None): |
54 super().__init__(parent) | 52 super().__init__(parent) |
55 l = QVBoxLayout(self) | 53 l = QtWidgets.QVBoxLayout(self) |
56 self.tv = QTableView(self) | 54 self.tv = QtWidgets.QTableView(self) |
57 self.tv.horizontalHeader().setStretchLastSection(True) | 55 self.tv.horizontalHeader().setStretchLastSection(True) |
58 l.addWidget(self.tv) | 56 l.addWidget(self.tv) |
59 self.lm = LogModel() | 57 self.lm = LogModel() |
60 self.tv.setModel(self.lm) | 58 self.tv.setModel(self.lm) |
61 | 59 |
62 class MyHandler(logging.Handler): | 60 class MyHandler(logging.Handler): |
63 def emit(self2, x): | 61 def emit(self2, x): |
64 self.lm.newLog(x) | 62 self.lm.newLog(x) |
65 self.tv.scrollToBottom() | 63 self.tv.scrollToBottom() |
66 for i in range(3): | 64 for i in range(3): |