如何在pyqt中创建一个定时器

新手上路,请多包涵

我有一个问题可能很简单,但我未能解决我想在 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 许可协议

阅读 493
2 个回答

我无法测试,但我认为你需要

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

#

原文由 eyllanesc 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏