所以我想创建一个计时器或排序,启动按钮启动计时器,我需要停止计时器与停止按钮,然后记录时间...我可以似乎没有想到如何在计时器功能启动后停止。我试过如果语句,disconnect()和其他许多... 我意识到在qt中有一个计时器,但我试图找出这种方式。谢谢。使用“停止按钮”退出功能
import sys
import time
from PyQt4 import QtCore, QtGui, uic
form_class = uic.loadUiType("/Users/Home/Desktop/Timer/timer.ui")[0]
class MyWindowClass(QtGui.QMainWindow, form_class):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self, parent)
self.setupUi(self)
self.startButton.clicked.connect(self.timer)
def timer(self):
timeL = 0
self.stopButton.clicked.connect(False)
while True:
self.timeView.display(timeL)
timeL = timeL + 1
time.sleep(1)
app.processEvents()
app = QtGui.QApplication(sys.argv)
myWindow = MyWindowClass(None)
myWindow.show()
app.exec_()
这绝对是可怕的建议,完全忽略了这一点。 OP要测量时间的流逝。事件循环和定时器('QTimer')不在其中任何位置。操作系统已经在测量时间的进展。只是问问吧! 'QElapsedTimer'是你想要使用的api。 –
这种方法很有效,但它是一种非常可恶的混合物,这个答案的唯一用途就是精确地显示**如何不这样做。如果你看到任何这样的代码,跑掉(或者更好的解决它)。 –
@KubaOber。我认为OP已经明白有更好的选择可供选择。我读这个问题的方式是,他们只是想知道如何解决他们的示例代码。正如你所说,它**确实有效:所以我没有看到在这个基础上回答它的任何伤害。我给出的小小建议完全**针对OP的示例代码,所以我很乐意支持它。 (坦率地说,它从来没有想过任何人会像你看起来那样认真对待这样的示例代码)。 – ekhumoro