pyqt4:在Qthread中使用定时器Qtimer注意
Posted 恍
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pyqt4:在Qthread中使用定时器Qtimer注意相关的知识,希望对你有一定的参考价值。
GUI main 部分,Work2是线程类
timer 调用线程类中的一个方法
实例化线程
self.s2_thread=Worker2()
定时器绑定要做的事情以及这个事情需要多长时间触发
self.log_get=QtCore.QTimer() self.log_get.singleShot(30000,self.s2_thread.get_mem_error_logfile_content) self.log_get.singleShot(90000,self.s2_thread.get_mem_right_logfile_content)
定义触发开始的调用方法
def qtimer_get_log(self):
self.log_get.start()
将调用方法和信号绑定
QtCore.QObject.connect(self.log_get, QtCore.SIGNAL("get_log_start()"), self.qtimer_get_log)
线程Qthread部分
在线程的run中根据需要的地方发起激活定时器的信号
class Worker2(QtCore.QThread): def __init__(self, parent=None): QtCore.QThread.__init__(self, parent)
def get_mem_error_logfile_content(self):
filename=host_list[‘app75‘][‘autologfilename‘]
with open(filename,‘r‘) as f:
self.log_30_sec=f.read()
print ‘#‘*30
def get_mem_right_logfile_content(self):
filename=host_list[‘app75‘][‘autologfilename‘]
with open(filename,‘r‘) as f:
self.log_90_sec=f.read()
print ‘*‘*30 def run(self): ...... self.emit(QtCore.SIGNAL("get_log_start()")) ......
以上是关于pyqt4:在Qthread中使用定时器Qtimer注意的主要内容,如果未能解决你的问题,请参考以下文章
在 Windows 错误中使用 QProcess 启动进程:“计时器只能用于以 QThread 启动的线程”
在 PyQt4 中更新 n 个 PlotWidgets 以进行实时绘图
在不开启事件循环的线程中使用QTimer(QThread::run函数自带事件循环,在构造函数里创建线程,是一种很有意思的线程用法) good