pyqt QtextBrowser中如何让每行的关键字和信息对齐
请教大佬,小弟在用pyqt写界面,其中需要日志记录,我采用的是QextBrowser进行记录,日志中有关键字(‘INFO’、‘WARNING’、'ERROR'、‘DEBUG’),信息部分,还有时间部分,我需要的是各个关键字有颜色区分,同时日志中每一行关键字对齐,信息部分对齐,时间部分对齐,这样看起来比较整洁美观,但是一直实现不了对齐,如图,不知道怎么解决。# -*- coding: utf-8 -*-
import sys
import os
import time
from PyQt4 import QtGui,QtCore
##from PyQt4.QtGui import *
##from PyQt4.QtCore import *
class Show_LOGfile(QtGui.QDialog):
def __init__(self, parent=None):
super(Show_LOGfile, self).__init__(parent)
self.LOG_browser = QtGui.QTextBrowser()
self.load_button=QtGui.QPushButton("open")
self.clear_button=QtGui.QPushButton("delete")
self.label=QtGui.QLabel("")
buttonLayout=QtGui.QHBoxLayout()
buttonLayout.addWidget(self.label)
buttonLayout.addStretch()
buttonLayout.addWidget(self.load_button)
buttonLayout.addWidget(self.clear_button)
layout = QtGui.QGridLayout()
layout.addLayout(buttonLayout,0, 0)
layout.addWidget(self.LOG_browser,1, 0)
self.setLayout(layout)
self.resize(840, 700)
self.connect(self.load_button,QtCore.SIGNAL("clicked()"), self.load_file)
self.connect(self.clear_button,QtCore.SIGNAL("clicked()"), self.clear_file)
def load_file(self):
m1='WARNING:The speed is too high'
m2='ERROR:The tyre pressure is low,pleaese stop the car'
m3='INFO:The Main power is enabled'
m4='DEBUG:GPS MAP is missed'
log_message=
for log in log_message:
currentDateTime = QtCore.QDateTime.currentDateTime()
currentDateStr = currentDateTime.toString(" ")
s1=log.split(':')
s2=log.split(':')
if s1=='INFO':
self.LOG_browser.append("<font color=black size=5 >%s</font><font size=5>%s</font><font color=blue size=5 >%s</font>" % ('INFO:',s2,currentDateStr))
elif s1=='WARNING':
self.LOG_browser.append("<font color=yellow size=5 >%s</font><font size=5>%s</font><font color=blue size=5 >%s</font>" % ('WARNING:',s2,currentDateStr))
elif s1=='ERROR':
self.LOG_browser.append("<font color=red size=5 >%s</font><font size=5>%s</font><font color=blue size=5 >%s</font>" % ('ERROR:',s2,currentDateStr))
else:
self.LOG_browser.append("<font color=brown size=5 >%s</font><font size=5>%s</font><font color=blue size=5 >%s</font>" % ('DEBUG:',s2,currentDateStr))
self.LOG_browser.append("<font color=red size=5 >%s</font><font size=5>%s</font><font color=blue size=5 >%s</font>" % ('','',''))
self.LOG_browser.moveCursor(QtGui.QTextCursor.End)
def clear_file(self):
self.LOG_browser.clear()
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
window = Show_LOGfile()
window.show()
sys.exit(app.exec_())
图片好像贴不了 本帖最后由 hrpzcf 于 2022-5-20 12:25 编辑
用你的文字生成html后再在QTextBrowser中显示,文字的对齐使用html的办法,比如有边框或者无边框无边框的表格。
或者干脆用用QTableWidget显示数据也可以,QTableWidget的子项QTableWidgetItem也支持字体颜色或者背景颜色的。 hrpzcf 发表于 2022-5-20 12:19
用你的文字生成html后再在QTextBrowser中显示,文字的对齐使用html的办法,比如有边框或者无边框无边框的表 ...
好的,多谢了
页:
[1]