pyqt6 qthread使用
时间: 2024-10-19 07:01:21 浏览: 22
PyQt 线程类 QThread使用详解
PyQt6是一个结合了Python语言和Qt图形用户界面库的工具包,它提供了一种在主线程之外创建并管理单独线程的方式,以便于处理耗时任务而不阻塞UI操作。QThread是PyQt6中的一个核心组件,用于实现线程并发。
在PyQt6中,你可以这样做:
1. **创建新线程**:
```python
from PyQt6.QtCore import QThread, pyqtSignal
class WorkerThread(QThread):
finished = pyqtSignal() # 定义信号,当工作完成时发出
def run(self): # 线程中的函数
# 这里放你的耗时任务代码
self.task_completed() # 模拟任务完成
self.finished.emit() # 发出信号通知主线程任务已完成
worker = WorkerThread()
```
2. **启动和连接信号**:
```python
worker.start() # 启动新线程
worker.finished.connect(lambda: print("Task finished")) # 当工作完成后,主线程接收到信号并执行回调
```
3. **处理线程结果**:
```python
def task_completed():
# 在这里处理任务的结果
pass
worker.task_completed.connect(task_completed)
```
4. **注意上下文管理**:
使用`with`语句可以确保线程结束时自动关闭,防止资源泄露:
```python
with WorkerThread() as worker:
worker.run()
```
阅读全文