BB *_* ON 2 python user-interface pyqt pyqt4
我正在尝试学习Python和PyQt4 GUI.我想在操作系统上打印标签上的日期/时间到主窗口.我知道有一个DateTimeEdit小部件,让用户看到(但也编辑 - 我不想要的)时间,就像这里的情况一样.我想总是直接从操作系统中打印出来.我的研究发现了QDateTime对象,但是文档并没有表明它们会发出任何类型的信号,这些信号在经过一段时间的勾选之后会很有用.所以我猜我必须轮询它,如果我不想阻止它将需要多线程.是否有一种更优雅的方式来做这件事,还是我想要以唯一的方式做到这一点?
(我意识到用户可以只看一下任务栏,但我需要提供一些反馈,说明程序在适当的时间运行)
谢谢.
import sys
from PyQt4 import QtCore, QtGui
class MyWin(QtGui.QWidget):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.label = QtGui.QLabel('time', self)
self.setLayout(QtGui.QVBoxLayout())
self.layout().addWidget(self.label)
self.timer = QtCore.QTimer(self)
self.timer.setInterval(1000)
self.timer.timeout.connect(self.displayTime)
self.timer.start()
def displayTime(self):
self.label.setText(QtCore.QDateTime.currentDateTime().toString())
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
win = MyWin()
win.show()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)
QLabel就足够了.QTimer是你的朋友,如果你需要定期做某事.无需处理线程 - 信号\槽系统处理.将QTimer.timeout()信号连接到任何可调用的,设置的间隔,呼叫start()- 就是这样.