python pyqt5通过按钮终止类中某个正在运行的特定函数的执行但不影响其他函数执行代码例子
时间: 2023-03-25 22:04:03 浏览: 239
pyqt关闭程序实例
可以使用QThread来实现多线程,然后在特定函数中加入判断语句,当接收到终止信号时,使用QThread的quit()函数来终止该线程的执行。具体代码实现可以参考以下示例:
```python
from PyQt5.QtCore import QThread, pyqtSignal
class Worker(QThread):
finished = pyqtSignal()
terminate_signal = pyqtSignal()
def __init__(self):
super().__init__()
def run(self):
while True:
# 执行特定函数
if self.terminate_signal.isSet():
break
self.finished.emit()
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.worker = Worker()
self.worker.finished.connect(self.on_finished)
self.worker.terminate_signal.connect(self.worker.quit)
def on_button_clicked(self):
self.worker.terminate_signal.set()
def on_finished(self):
# 处理函数执行完后的操作
pass
```
在特定函数中加入判断语句,当接收到终止信号时,使用QThread的quit()函数来终止该线程的执行。在主窗口中,通过按钮点击事件来发送终止信号。
阅读全文