秒表(计时器)不起作用

马里奥·费雷拉(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

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

来自分类Dev

JavaScript计时器不起作用

来自分类Dev

角度计时器不起作用

来自分类Dev

角度计时器不起作用

来自分类Dev

计时器不起作用

来自分类Dev

倒数计时器不起作用

来自分类Dev

倒数计时器不起作用

来自分类Dev

C#计时器不起作用?

来自分类Dev

C#计时器不起作用

来自分类Dev

Android SDK计时器不起作用

来自分类Dev

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

来自分类Dev

快速无效计时器不起作用

来自分类Dev

计时器间隔不起作用的Javascript

来自分类Dev

计时器onReceive在NavigationView中不起作用

来自分类Dev

每年计时器不起作用

来自分类Dev

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

来自分类Dev

计时器在Android Eclipse中不起作用

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

计时器/秒表GUI

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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