【分享】PyQt线程定时器

原创文章,转载请注明: 转载自勤奋的小青蛙
本文链接地址: 【分享】PyQt线程定时器

首先看下实现效果:

pyqt_thread_timer

下面是代码:

import sys
import time
from PyQt4 import QtCore, QtGui

#继承QThread
class TimerThread(QtCore.QThread):

    timeout_signal = QtCore.pyqtSignal(int)

    def __init__(self):
        QtCore.QThread.__init__(self)

    #重写run方法
    def run(self):
      self.timeout_signal.emit(0)
      while True:
        for i in range(1,5):
            print("定时器计数 = ", i)
            time.sleep(1)
            #发送timeout信号
            self.timeout_signal.emit(i)
        break
      print("定时器线程已退出...")


class MyApp(QtGui.QWidget):

    def __init__(self):
        QtGui.QWidget.__init__(self, None)
        #设置窗口位置
        self.setGeometry(200, 250, 800, 70)
        #设置窗口标题
        self.setWindowTitle('PyQt线程定时器演示')
        #水平布局
        self.layout = QtGui.QHBoxLayout()
        #进度条
        self.pbar = QtGui.QProgressBar()
        #进度条最大值
        self.pbar.setMaximum(4)
        #设置布局
        self.layout.addWidget(self.pbar)
        self.setLayout(self.layout)

    #槽函数,接收timeout信号
    def slog_timeout(self, i):
        self.pbar.setValue(i)


if __name__ == '__main__':
  app = QtGui.QApplication(sys.argv)
  test = MyApp()
  tThread = TimerThread()
  #信号槽绑定
  tThread.timeout_signal.connect(test.slog_timeout)
  tThread.start()
  test.show()
  app.exec_()
原创文章,转载请注明: 转载自勤奋的小青蛙
本文链接地址: 【分享】PyQt线程定时器

文章的脚注信息由WordPress的wp-posturl插件自动生成



|2|left
打赏

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: