首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在pyqt5 /Python3中,当主GUI窗口关闭时,如何使子线程关闭?

在pyqt5/Python3中,当主GUI窗口关闭时,可以通过以下步骤使子线程关闭:

  1. 创建一个子线程类,继承自QThread类,并重写run()方法,在run()方法中编写子线程的逻辑代码。
代码语言:txt
复制
from PyQt5.QtCore import QThread

class MyThread(QThread):
    def run(self):
        # 子线程的逻辑代码
        pass
  1. 在主GUI窗口类中,创建一个子线程对象,并在需要的时候启动子线程。
代码语言:txt
复制
from PyQt5.QtWidgets import QMainWindow

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.thread = MyThread()

    def start_thread(self):
        self.thread.start()
  1. 在主GUI窗口类中,重写closeEvent()方法,当主GUI窗口关闭时,调用子线程的quit()方法和wait()方法,以确保子线程的正常关闭。
代码语言:txt
复制
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()方法,使子线程正常关闭。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券