pyqt5多线程
时间: 2023-06-21 21:16:54 浏览: 47
PyQt5中多线程可以通过`QThread`类和信号槽机制来实现。以下是一个简单的多线程示例:
```python
from PyQt5.QtCore import QThread, pyqtSignal
import time
class MyThread(QThread):
finished = pyqtSignal()
def __init__(self, parent=None):
super().__init__(parent)
def run(self):
for i in range(5):
time.sleep(1)
print('running', i)
self.finished.emit() # 发送finished信号
if __name__ == '__main__':
thread = MyThread()
thread.finished.connect(app.exit) # 关联finished信号与程序退出
thread.start()
app.exec_()
```
在上面的示例中,创建了一个继承自`QThread`类的线程类`MyThread`,并在其中重写了`run`方法来实现线程的功能。在`run`方法中,可以编写需要在子线程中执行的代码。在`run`方法执行完成后,通过`finished`信号发射器发送一个`finished`信号,表示线程执行完成。在主线程中,可以通过`connect`方法将`finished`信号和程序退出函数关联起来,以便在线程完成后退出程序。最后,通过`start`方法启动线程。