zoukankan      html  css  js  c++  java
  • pyqt点击右上角关闭界面但子线程仍在运行

    现象:

    通过右上角的叉关闭图形界面后,程序运行的子线程却不会被自动关闭,依然留存在系统中
    原因:

    子线程没有正确关闭

    解决方法:

    1.将子线程设置成守护线程

    self.your_thread = threading.Thread(target=self.tcp_client_concurrency)
    # 设置线程为守护线程,防止退出主线程时,子线程仍在运行
    self.your_thread.setDaemon(True)
    # 新线程启动
    self.your_thread.start()
    

    2.重构 def closeEvent(self, event): 函数

        def closeEvent(self, event):
            """
            对MainWindow的函数closeEvent进行重构
            退出软件时结束所有进程
            :param event:
            :return:
            """
            reply = QtWidgets.QMessageBox.question(self,
                                                   '本程序',
                                                   "是否要退出程序?",
                                                   QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No,
                                                   QtWidgets.QMessageBox.No)
            if reply == QtWidgets.QMessageBox.Yes:
                event.accept()
                os._exit(0)
            else:
                event.ignore()
    
    
    ##### 愿你一寸一寸地攻城略地,一点一点地焕然一新 #####
  • 相关阅读:
    docker
    手动处理datanode磁盘间使用不均的问题
    Hadoop op 1)
    Python class and function json
    scala Basic 第三课
    spark streaming kafka example
    hadoop io PART1
    elasticsearch 集群搭建
    Scala编程第二课
    scala 第一课
  • 原文地址:https://www.cnblogs.com/johnyang/p/13167149.html
Copyright © 2011-2022 走看看