如何使用 QTimer 每秒多次刷新我的 QWidget?

问题描述

我想构建一个显示信息的 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。