pyqt5 Qtimer属性和方法
时间: 2024-09-12 22:08:49 浏览: 44
PyQt5中的QTimer类是一个非常实用的工具,它允许用户在应用程序中设置定时器。这些定时器可以用来在预定时间后执行特定的函数,或者定期执行函数。QTimer提供了一些重要的属性和方法来控制定时器的行为。
主要属性有:
- `interval`: 设置定时器触发的间隔时间,单位为毫秒。
- `singleShot`: 布尔值,表示定时器是否为单次触发。如果为True,则定时器触发一次后自动停止;如果为False,则定时器将定期触发。
- `timeout`: 定时器触发时发射的信号。
主要方法有:
- `start()`: 启动定时器,开始倒计时,等待达到设定的间隔时间后触发。
- `stop()`: 停止定时器。
- `setSingleShot(bool)`: 设置定时器为单次或重复触发。
- `isActive()`: 返回定时器是否正在运行。
- `timeout.connect(function)`: 将定时器的timeout信号连接到指定的函数,以便在定时器触发时执行该函数。
下面是一个简单的例子,展示了如何使用QTimer:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
from PyQt5.QtCore import QTimer
class AppDemo(QWidget):
def __init__(self):
super().__init__()
self.initUI()
self.timer = QTimer(self)
self.timer.timeout.connect(self.timeElapsed)
self.button = QPushButton('启动定时器', self)
self.button.clicked.connect(self.startTimer)
self.button.move(50, 50)
def initUI(self):
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('QTimer示例')
def startTimer(self):
self.timer.start(1000) # 设置定时器间隔为1000毫秒
def timeElapsed(self):
print('定时器触发')
def main():
app = QApplication(sys.argv)
demo = AppDemo()
demo.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
```
在这个例子中,我们创建了一个简单的窗口,其中有一个按钮用于启动定时器。定时器每1000毫秒触发一次,触发时在控制台输出一条消息。