在pyqt5/Python3中,当主GUI窗口关闭时,可以通过以下步骤使子线程关闭:
QThread
类,并重写run()
方法,在run()
方法中编写子线程的逻辑代码。from PyQt5.QtCore import QThread
class MyThread(QThread):
def run(self):
# 子线程的逻辑代码
pass
from PyQt5.QtWidgets import QMainWindow
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.thread = MyThread()
def start_thread(self):
self.thread.start()
closeEvent()
方法,当主GUI窗口关闭时,调用子线程的quit()
方法和wait()
方法,以确保子线程的正常关闭。from PyQt5.QtWidgets import QApplication, QMainWindow
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.thread = MyThread()
def start_thread(self):
self.thread.start()
def closeEvent(self, event):
self.thread.quit()
self.thread.wait()
event.accept()
通过以上步骤,当主GUI窗口关闭时,会触发closeEvent()
方法,从而调用子线程的quit()
方法和wait()
方法,使子线程正常关闭。
领取专属 10元无门槛券
手把手带您无忧上云