欢迎访问宙启技术站
智能推送

使用PyQt5.QtCore.QTimer定时器实现程序计时功能

发布时间:2024-01-02 08:12:33

PyQt5.QtCore.QTimer是一个用于实现定时器功能的类。通过设置一个时间间隔,QTimer可以定期触发一个槽函数或者发送一个信号。可以使用它来实现程序计时功能,例如实时显示程序运行的时长。

下面是一个使用PyQt5.QtCore.QTimer实现程序计时的例子:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout
from PyQt5.QtCore import QTimer

class MainWindow(QWidget):
    def __init__(self):
        super().__init__()

        self.timer = QTimer(self)  # 创建一个QTimer对象
        self.timer.timeout.connect(self.update_timer)  # 定时器触发时连接到槽函数

        self.label = QLabel()  # 创建一个显示计时的标签控件
        self.layout = QVBoxLayout()  # 使用垂直布局管理器
        self.layout.addWidget(self.label)
        self.setLayout(self.layout)

    def start_timer(self):
        self.start_time = self.current_time()  # 记录开始时间
        self.timer.start(1000)  # 启动定时器,每秒触发一次

    def current_time(self):
        # 获取当前时间
        return QDateTime.currentDateTime().toString('yyyy-MM-dd hh:mm:ss')

    def update_timer(self):
        elapsed_time = self.current_time().toSecsSinceEpoch() - self.start_time.toSecsSinceEpoch()
        self.label.setText(f'Elapsed Time: {elapsed_time} seconds')

if __name__ == '__main__':
    app = QApplication(sys.argv)

    window = MainWindow()
    window.start_timer()  # 启动计时器

    window.show()

    sys.exit(app.exec_())

以上代码创建了一个窗口类MainWindow,继承自QWidget。在窗口中创建了一个QTimer对象,并将其timeout信号连接到槽函数update_timer上。槽函数update_timer会在每次定时器超时时调用,计算从开始计时到当前时间经过的秒数,并更新显示计时的标签控件。通过调用start_timer方法启动计时器。

在main函数中,创建了一个QApplication对象,实例化了MainWindow类,并调用start_timer方法启动计时器。最后调用app的exec_方法来运行应用程序。

运行以上代码,会弹出一个窗口,显示从开始计时到当前时间经过的秒数。