我有一个问题可能很简单,但我未能解决我想在 pyqt 中使用 QTimeEdit 创建一个计时器,默认时间从 00:00:00 开始,并且每秒增加一次。我试过下面的代码,但它只添加了一秒钟就停止了。 self.timer = QtCore.QTimer() self.timer.timeout.connect(self.time) self.timer.start(1000) def time(self): self.upTime.setTime(QtCore.QTime(00,00,00).addSecs()) 原文由 And3r50n 1 发布,翻译遵循 CC BY-SA 4.0 许可协议
我无法测试,但我认为你需要 self.curr_time = QtCore.QTime(00,00,00) self.timer = QtCore.QTimer() self.timer.timeout.connect(self.time) self.timer.start(1000) def time(self): self.curr_time = self.curr_time.addSecs() self.upTime.setTime(self.curr_time)) 您只需创建 QtCore.QTime(00,00,00) 一次,然后在 time() 中增加其值。 现在你总是使用 QtCore.QTime(00,00,00) 并增加这个值。 原文由 furas 发布,翻译遵循 CC BY-SA 3.0 许可协议
{yout time}.addSecs(1) 不改变时间,但返回改变的时间。您必须使用 {yout time} = {yout time}.addSecs(1) import sys from PyQt5 import QtCore def timerEvent(): global time time = time.addSecs(1) print(time.toString("hh:mm:ss")) app = QtCore.QCoreApplication(sys.argv) timer = QtCore.QTimer() time = QtCore.QTime(0, 0, 0) timer.timeout.connect(timerEvent) timer.start(1000) sys.exit(app.exec_()) 00:00:01 00:00:02 00:00:03 00:00:04 00:00:05 00:00:06 00:00:07 00:00:08 00:00:09 00:00:10 00:00:11 00:00:12