秒表(计时器)不起作用

马里奥·费雷拉(Mario Ferreyra)

我使用pyqt库在python中制作了一个秒表(计时器),但是按复位按钮然后按开始按钮时我遇到了问题,我看到时间增加了2,重复该过程,我发现三分之二和很快。我不明白为什么会这样。我希望有人能帮助我。这是代码:

# -*- coding: utf-8 -*-

import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4 import uic


class Cronometro(QWidget):

    def __init__(self):
        QWidget.__init__(self)
        uic.loadUi("cronometro.ui", self)

        self.sec = 0
        self.timer = QTimer()

        self.set_time()

        # Conexion
        self.btnStart.clicked.connect(self.start)
        self.btnReset.clicked.connect(self.reset)
        self.btnExit.clicked.connect(self.close)

    def start(self):
        self.timer.timeout.connect(self.counter)
        self.timer.start(1000)

    def reset(self):
        self.timer.stop()
        self.sec = 0

    def counter(self):
        self.sec += 1
        self.set_time()

    def is_timer_active(self):
        return self.timer.isActive()

    def set_time(self):
        hora = self.sec / 3600
        minutos = (self.sec % 3600) / 60
        segundos = (self.sec % 3600) % 60
        self.label.setText("%02d:%02d:%02d" % (hora, minutos, segundos))


app = QApplication(sys.argv)
ventana = Cronometro()
ventana.show()
sys.exit(app.exec_())

非常感谢你 !!!

卢克·伍德沃德

问题在这里,在您的start方法中:

    def start(self):
        self.timer.timeout.connect(self.counter)
        self.timer.start(1000)

每次启动计时器时,都将计时器的timeout信号连接到您的counter方法。因此,如果您两次启动计时器,则计时器与您的counter方法之间会有两个连接,因此计数器方法在计时器的每个计时周期都会被调用两次。

解决方法非常简单:移动这条线

        self.timer.timeout.connect(self.counter)

进入您的__init__方法,这样连接就只能建立一次。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

计时器/秒表GUI

来自分类Dev

Android SDK计时器不起作用

来自分类Dev

在Glass上运行计时器,秒表和指南针示例似乎不起作用

来自分类Dev

C#计时器不起作用?

来自分类Dev

秒表计时器递增(例如倒数计时器)

来自分类Dev

C#计时器不起作用

来自分类Dev

JavaScript计时器不起作用

来自分类Dev

EJB3计时器在Wildfly服务器中不起作用

来自分类Dev

角度计时器不起作用

来自分类Dev

python 3.4,计时器倒计时不起作用

来自分类Dev

倒数计时器onTick方法不起作用

来自分类Dev

快速无效计时器不起作用

来自分类Dev

计时器间隔不起作用的Javascript

来自分类Dev

计时器onReceive在NavigationView中不起作用

来自分类Dev

每年计时器不起作用

来自分类Dev

子线程中的计时器不起作用

来自分类Dev

计时器在Android Eclipse中不起作用

来自分类Dev

角度计时器在我的应用中不起作用

来自分类Dev

角度计时器不起作用

来自分类Dev

为什么我的Java计时器不起作用?

来自分类Dev

计时器不起作用

来自分类Dev

python 3.4,计时器倒计时不起作用

来自分类Dev

NSTimer [计时器无效]不起作用

来自分类Dev

Windows服务上的计时器在服务器上不起作用

来自分类Dev

倒数计时器不起作用

来自分类Dev

Esper 模式计时器:interval() 不起作用

来自分类Dev

倒数计时器不起作用

来自分类Dev

Azure Functions 计时器触发器不起作用

来自分类Dev

我的反应组件计时器不起作用