【发布时间】:2019-03-22 13:11:00
【问题描述】:
我在 pyqt5 上有一个应用程序。如果我点击按钮时间液晶显示器开始倒计时我创建的线程。倒计时结束后,我不能使用相同的线程进行相同的操作。如何终止该线程并通过单击按钮重新启动它
class window(QtWidgets.QMainWindow):
def __init__(self):
super(window,self).__init__()
self.button1=QPushButton(self)
self.lcd=QLCDNumber(self)
self.tbutton1=threading.Thread(target=self.timing)
def initUI(self):
self.lcd.setVisible(False)
self.button1.clicked.connect(self.timing)
def timing(self):
self.tbutton1.start()
self.lcd.setVisible(True)
timing=self.spin.value()
for i in range(timing,-1,-1):
time.sleep(1)
if(i<10):
self.lcd.display("00:0{}".format(i))
else:
self.lcd.display("00:{}".format(i))
self.lcd.setVisible(False)
if __name__=='__main__':
app=QApplication(sys.argv)
win=window()
sys.exit(app.exec_())
【问题讨论】:
-
您需要向我们展示更多代码。例如,看起来按钮单击处理程序和线程操作是同一个函数,这听起来不对。
-
在计时函数的最后一行我想杀死线程,如果我再次点击它,线程再次启动并执行所需的操作
-
请向我们展示您当前的代码,而不是像这样的语法错误的 sn-p。
-
所以整个代码是这样的,因为我认为没有必要全部写出来,所以人们所做的都是一样的
-
当您使用 QT 时,我真的建议您也使用 QThread 而不是 Python 线程模块。
标签: python multithreading pyqt5