【问题标题】:Stopwatch getting faster every click of 'Start' button每次点击“开始”按钮,秒表都会变得更快
【发布时间】:2021-03-14 01:38:28
【问题描述】:
from PyQt5 import uic
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

QApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
app = QApplication([])
window = uic.loadUi("exercise3.ui")

timer = QTimer()


def start():
    timer.start(10)
    timer.timeout.connect(updateDisplay)


time = 0
def updateDisplay():
    global time
    time += 1
    text = str(time/100)
    window.timeDisplay.setText(text)


def stop():
    timer.stop()


window.startButton.clicked.connect(start)
window.stopButton.clicked.connect(stop)

window.show()
app.exec_()

嗨,这里的超级初学者,不知道为什么,但是每次我在 GUI 中按下开始按钮时,秒表似乎越来越快,几乎就像间隔在变化一样。不太清楚发生了什么,如果有人可以提供帮助,将不胜感激,谢谢!

【问题讨论】:

  • 代码似乎是正确的,你真的用秒表/任何替代方法检查过吗?
  • @SamridhTuladhar 我已经使用执行代码时出现的窗口对其进行了测试,每次按下开始按钮时,秒表都会明显加快

标签: python timer stopwatch


【解决方案1】:

我好像解决了! 'timeout.connect()' 调用应该在 start() 槽之外。不知何故,当它在 start() 槽中时,似乎信号多次连接到同一个槽,导致槽也被多次调用,使其每次调用都加速。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-26
    • 2023-03-07
    • 2021-06-02
    • 2021-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多