• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PyQt5中QTimer定时器的实例代码

    如果要在应用程序中周期性地进行某项操作,比如周期性地检测主机的CPU值,则需要用到QTimer定时器,QTimer类提供了重复的和单次的定时器。要使用定时器,需要先创建一个QTimer实例,将其timeout信号连接到相应的槽,并调用start()。然后定时器会以恒定的间隔发出timeout信号,当窗口控件收到timeout信号后,它就会停止这个定时器。

    一、QTimer类中的常用方法

    方法 描述
    start(milliseconds) 启动或重新启动定时器,时间间隔为毫秒。如果定时器已经运行,它将被停止并重新启动。如果singleShot信号为真,定时器将仅被激活一次
    Stop() 停止定时器

    二、QTimer类中的常用信号

    信号 描述
    singleShot 在给定的时间间隔后调用一个槽函数时发射此信号
    timeout 当定时器超时时发射此信号

    三、QTimer的使用

    示例1:

    import sys
    from PyQt5 import QtCore
    from PyQt5.QtWidgets import *
    from PyQt5.QtGui import *
    from PyQt5.QtCore import *
    
    class Demo(QWidget):
        count = 0
        def __init__(self):
            super().__init__()
            self.setGeometry(100, 50, 500, 400)
            self.setWindowTitle('QTimer')
    
            self.list = QListWidget()
            self.label = QLabel('显示当前时间')
            self.start = QPushButton('开始')
            self.end = QPushButton('结束')
            layout = QGridLayout()
    
            #初始化定时器
            self.timer = QTimer(self)
            self.timer.timeout.connect(self.showTime)
            self.start.clicked.connect(self.startTimer)
            self.end.clicked.connect(self.endTimer)
    
            layout.addWidget(self.label,0,0,1,2)
            layout.addWidget(self.start,1,0)
            layout.addWidget(self.end,1,1)
            self.setLayout(layout)
    
        def showTime(self):
            #获取系统现在的时间
            time = QDateTime.currentDateTime().toString('yyyy-MM-dd hh:mm:ss dddd')
            self.label.setText(time)
    
        def startTimer(self):
            #设置时间间隔并启动定时器
            self.timer.start(1000)
            self.start.setEnabled(False)
            self.end.setEnabled(True)
    
        def endTimer(self):
            #关闭定时器
            self.timer.stop()
            self.start.setEnabled(True)
            self.end.setEnabled(False)
    
    if __name__ == "__main__":
        app = QApplication(sys.argv)
        form = Demo()
        form.show()
        sys.exit(app.exec_())
    

    运行效果如下:


    示例2:

    import sys
    from PyQt5 import QtCore
    from PyQt5.QtWidgets import *
    from PyQt5.QtGui import *
    from PyQt5.QtCore import *
    
    if __name__ == "__main__":
        app = QApplication(sys.argv)
        label = QLabel('font color=blue size=20>b>PyQt5,窗口5秒后消失/b>/font>')
        #无边框窗口
        label.setWindowFlags(Qt.SplashScreen|Qt.FramelessWindowHint)
        label.show()
        #设置5秒后自动退出
        QTimer.singleShot(5000,app.quit)
        sys.exit(app.exec_())
    

    运行效果如下:

    PyQt5 QTimer计数到特定的秒数

    我正在使用python创建程序,并且正在使用pyqt。我目前正在使用QTimer,我想每秒钟打印一次“ timer works”,并在5秒钟后停止打印。这是我的代码:

    timers = []
    def thread_func():
        print("Thread works")
        timer = QtCore.QTimer()
        timer.timeout.connect(timer_func)
        timer.start(1000)
        print(timer.remainingTime())
        print(timer.isActive())
        timers.append(timer)
    
    def timer_func():
        print("Timer works")
    

    解决方案

    以下是一个简单的演示,显示了如何创建在固定数量的超时后停止计时的计时器。

    from PyQt5 import QtCore
    
    def start_timer(slot, count=1, interval=1000):
        counter = 0
        def handler():
            nonlocal counter
            counter += 1
            slot(counter)
            if counter >= count:
                timer.stop()
                timer.deleteLater()
        timer = QtCore.QTimer()
        timer.timeout.connect(handler)
        timer.start(interval)
    
    def timer_func(count):
        print('Timer:', count)
        if count >= 5:
            QtCore.QCoreApplication.quit()
    
    app = QtCore.QCoreApplication([])
    start_timer(timer_func, 5)
    app.exec_()
    

    到此这篇关于PyQt5中QTimer定时器的实例代码的文章就介绍到这了,更多相关PyQt5 QTimer定时器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
    • PyQt5使用QTimer实现电子时钟
    上一篇:浅谈Pytorch 定义的网络结构层能否重复使用
    下一篇:Python使用pydub模块转换音频格式以及对音频进行剪辑
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PyQt5中QTimer定时器的实例代码 PyQt5,中,QTimer,定时器,的,