Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在pyqt中创建计时器_Python_Pyqt_Pyqt4_Pyqt5 - Fatal编程技术网

Python 如何在pyqt中创建计时器

Python 如何在pyqt中创建计时器,python,pyqt,pyqt4,pyqt5,Python,Pyqt,Pyqt4,Pyqt5,我有一个问题可能很简单,但我没能解决 我想使用QTimeEdit在pyqt中创建一个计时器,默认时间从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).add

我有一个问题可能很简单,但我没能解决 我想使用
QTimeEdit
在pyqt中创建一个计时器,默认时间从
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())

我不能测试,但我想你需要

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)
并增加此值。

您只需在
QTimeEdit
中获取当前时间并将其增加1秒:

def time(self):
    self.upTime.setTime(self.upTime.time().addSecs(1))
并确保在启动时间开始时正确初始化
QTimeEdit

self.upTime.setTime(QtCore.QTime(0, 0, 0))
self.upTime.setDisplayFormat('hh:mm:ss')
{yout time}.addSecs(1)
不更改时间,但返回更改后的时间。您必须使用
{yout time}={yout time}.addSecs(1)

输出:

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
# 以下是一个解决方案:

import sys

from PySide import QtCore

def calculo():
    global time
    time = time.addSecs(1)
    print(time.toString("hh:mm:ss"))

app = QtCore.QCoreApplication(sys.argv)

timer0 = QtCore.QTimer()
time = QtCore.QTime(0, 0, 0)
timer0.setInterval(1000)
timer0.timeout.connect(calculo)
timer0.start()

sys.exit(app.exec_())

显示您的全部代码。如果您一直使用
QtCore.QTime(00,00,00).addSecs()
,则无法获得更大的值。您只需创建一次
QtCore.QTime(00,00,00)
,并在
time()中增加它
import sys

from PySide import QtCore

def calculo():
    global time
    time = time.addSecs(1)
    print(time.toString("hh:mm:ss"))

app = QtCore.QCoreApplication(sys.argv)

timer0 = QtCore.QTimer()
time = QtCore.QTime(0, 0, 0)
timer0.setInterval(1000)
timer0.timeout.connect(calculo)
timer0.start()

sys.exit(app.exec_())