1 import sys
2 from PyQt5.QtCore import QTimer, Qt
3 from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLabel, QVBoxLayout
4
5 class Demo(QWidget):
6 def __init__(self):
7 super(Demo, self).__init__()
8 self.label = QLabel('0', self)
9 self.label.setAlignment(Qt.AlignCenter)
10
11 self.step = 0
12
13 self.timer = QTimer(self) #实例化定时器
14 self.timer.timeout.connect(self.update_func) #设置定时执行的函数
15
16 self.ss_button = QPushButton('Start', self)
17 self.ss_button.clicked.connect(self.start_stop_func)
18
19 self.v_layout = QVBoxLayout()
20 self.v_layout.addWidget(self.label)
21 self.v_layout.addWidget(self.ss_button)
22
23 self.setLayout(self.v_layout)
24
25 def start_stop_func(self):
26 if not self.timer.isActive():
27 #self.timer.isActive() 返回定时器是否激活 Ture激活
28 self.ss_button.setText('Stop')
29 self.timer.start(100) #启动定时器,时间间隔100毫秒
30 else:
31 self.ss_button.setText('Start')
32 self.timer.stop() #停止定时器
33
34 def update_func(self):
35 self.step += 1
36 self.label.setText(str(self.step))
37
38
39 if __name__ == '__main__':
40 app = QApplication(sys.argv)
41 demo = Demo()
42 demo.show()
43 sys.exit(app.exec_())