pyqt5 Qthread中QTimer方法举例
时间: 2024-09-20 16:02:54 浏览: 54
PyQt5中多线程模块QThread使用方法的实现
PyQt5中的`QThread`和`QTimer`通常一起用于实现并发处理和避免主线程阻塞。`QTimer`允许你在单独的线程(即工作线程或后台线程)中定期执行任务。下面是一个简单的例子:
```python
from PyQt5.QtCore import QTimer, pyqtSlot, QThread
class WorkerThread(QThread):
def __init__(self, parent=None):
super().__init__(parent)
@pyqtSlot() # 使用@pyqtSlot装饰的函数将在主线程安全地调用
def run(self):
self.timer = QTimer()
self.timer.timeout.connect(self.working_method) # 定义定时器触发的工作方法
self.timer.start(1000) # 每隔1秒执行一次
def working_method(self): # 这个方法会在子线程运行
print("工作线程正在执行...")
# 在这里可以执行耗时的操作,如网络请求、文件读写等
# 主线程
def main():
app = QApplication([])
worker_thread = WorkerThread()
worker_thread.start() # 启动worker_thread
# 主循环开始,但不会等待worker_thread完成
app.exec_()
if __name__ == '__main__':
main()
阅读全文