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):