问题描述
我想构建一个显示信息的 GUI,每 10-100 毫秒更新一次。我试图通过设置 Qtimer.start(100) 将其实现到 QTimer 示例中,但它每秒只更新一次。如何实现每秒刷新一次以上的 GUI?我也试过手动 QWidget.update() 和 QTimer.setInterval(100) 没有效果。有没有更好的解决办法?
import sys
from python_qt_binding.QtWidgets import QWidget,QPushButton,QApplication,QListWidget,qgridLayout,QLabel
from python_qt_binding.QtCore import Qt,QTimer,QDateTime
class RobolabWidget(QWidget):
def __init__(self,parent=None):
super(RobolabWidget,self).__init__(parent)
self.setwindowTitle('QTimer example')
self.listFile=QListWidget()
self.label=QLabel('Label')
self.startBtn=QPushButton('Start')
self.endBtn=QPushButton('Stop')
layout=qgridLayout()
self.timer=QTimer()
self.timer.setTimerType(Qt.PreciseTimer)
self.timer.timeout.connect(self.showTime)
layout.addWidget(self.label,1,2)
self.timer.start(100)
self.setLayout(layout)
def showTime(self):
time=QDateTime.currentDateTime()
timedisplay=time.toString('hh:mm:ss:ms')
self.label.setText(timedisplay)
解决方法
我发现了问题。 QDateTime.currentDateTime() 只有秒的分辨率。
我只使用对我有用的 python-datetime 函数而不是 QDateTime。