self.pushButton_show3D.clicked.connect(self.show_3D)多线程
时间: 2023-12-20 12:07:36 浏览: 73
多线程创建按钮
如果你需要在点击 `pushButton_show3D` 按钮后启动一个耗时的任务,可以使用多线程来避免阻塞主线程。以下是一个简单的例子:
```python
from PyQt5.QtCore import QThread, pyqtSignal
class TaskThread(QThread):
finished = pyqtSignal(object)
def __init__(self):
super().__init__()
def run(self):
# 在这里执行耗时的任务
result = compute_3D_data()
# 发送任务完成的信号,将结果传递给主线程
self.finished.emit(result)
```
在主窗口中,你需要将 `TaskThread` 实例化并连接到按钮的 `clicked` 信号上:
```python
self.thread = TaskThread()
self.thread.finished.connect(self.show_3D)
self.pushButton_show3D.clicked.connect(self.thread.start)
```
在 `TaskThread` 的 `run` 方法中执行的任务会在一个独立的线程中运行,不会阻塞主线程。当任务完成后,会发送一个 `finished` 信号,将结果传递给 `show_3D` 方法,该方法会在主线程中执行,用于更新UI界面。
阅读全文