pyside2如何实现多线程
时间: 2023-10-18 18:20:59 浏览: 156
PySide2可以使用Python内置的`threading`模块来实现多线程。下面是一个基本示例:
```python
from PySide2.QtCore import QThread, Signal
class MyThread(QThread):
finished = Signal() # 用于发射线程完成的信号
def __init__(self):
super().__init__()
def run(self):
# 这里是线程执行的代码
for i in range(10):
print(i)
self.finished.emit() # 发射线程完成的信号
```
在上面的代码中,我们创建了一个继承自`QThread`的子类`MyThread`。这个子类中定义了一个`finished`信号,用于发射线程完成的信号。在`run`方法中编写线程执行的代码,例如循环打印数字。当线程执行完成后,我们发射`finished`信号。
接下来,我们可以在主线程中创建一个`MyThread`对象,并启动它:
```python
my_thread = MyThread()
my_thread.start()
```
这样就可以启动一个新的线程来执行`MyThread`中定义的任务了。同时,我们也可以在主线程中监听`MyThread`对象的`finished`信号,并在信号被发射时执行相应的处理:
```python
my_thread = MyThread()
my_thread.finished.connect(handle_thread_finished)
my_thread.start()
def handle_thread_finished():
print("Thread finished.")
```
在上面的代码中,我们将`MyThread`对象的`finished`信号连接到了一个名为`handle_thread_finished`的处理函数。当线程执行完成后,`handle_thread_finished`函数将被调用,打印一条消息。
阅读全文