QT点击一个按钮,计时器开始倒数20秒
时间: 2024-01-15 14:03:39 浏览: 98
好的,您可以按照以下步骤来实现:
1. 在QT Designer中拖拽一个QPushButton控件,设置其显示文本为“开始倒数”。
2. 在QPushButton的槽函数中,创建一个QTimer对象,设置其时间间隔为1000毫秒,即1秒。
3. 将计数器初始值设置为20,并在QTimer的timeout信号中,每次将计数器减1,并更新QPushButton的文本显示。
4. 当计数器减少至0时,停止QTimer,并弹出提示框表示倒数结束。
下面是示例代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QMessageBox
from PyQt5.QtCore import QTimer
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle("倒数计时器")
self.setGeometry(100, 100, 300, 200)
self.btn = QPushButton(self)
self.btn.setText("开始倒数")
self.btn.setGeometry(100, 100, 100, 50)
self.btn.clicked.connect(self.startTimer)
self.show()
def startTimer(self):
self.counter = 20
self.timer = QTimer(self)
self.timer.timeout.connect(self.countdown)
self.timer.start(1000)
def countdown(self):
self.counter -= 1
self.btn.setText(str(self.counter))
if self.counter == 0:
self.timer.stop()
QMessageBox.information(self, "提示", "倒数结束!")
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
sys.exit(app.exec_())
```
希望能够帮助到您!
阅读全文
相关推荐











