this application has requested the runtime 在python qt的多线程中出错

最新写了一个pyqt5的脚本, 用到了多线程, 在关闭页面的时候, 总是会报错this application has requested the runtime, 网上找了很久没发现问题所在, 最后一点一点试出来错误在哪, 特此记录.

关键在于我使用了多线程, 子线程关闭基本由两种方式

  1. 设置setDaemon(True为守护线程, 那么主线程关闭则子线程自然关闭
  2. 子线程主动sys.exit(0) 退出线程(和在run中结束一样的效果)

我是因为想要让ui更加顺滑一点, 所以在子线程中跑了pyqt,并且设置为守护线程, 然后在关闭ui界面的时候, 直接通知主线程结束, 而子线程不做任何处理连关闭事件也不accept()
这个时候执行, 然后点击关闭按钮的时候, 就会报这个错误.

解决方法是:

  1. 不要使用守护线程
  2. 关闭按钮触发的时候, 直接通知主线程结束, ui线程本身也接受关闭事件(或者直接sys.exit(0) 一样的, 就是主动结束子线程即可)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误信息表示应用程序请求运行时以不寻常的方式终止。当一个应用程序发生错误或异常时,它会向操作系统发送一个终止请求,以防止进一步的损坏或错误。在发生这种错误时,可能有几个因素导致。 首先,应用程序可能存在错误的代码,导致其在运行时发生异常。这可能是由于编程错误、内存耗尽、无效的操作或其他错误导致的。当操作系统检测到这种异常时,它会向应用程序发送终止请求。这样做是为了保护系统和其他应用程序的稳定性。 其次,运行应用程序的环境可能存在问题。这可能包括操作系统错误、无效的运行时库、不兼容的软件或其他环境问题。当应用程序无法正常运行或与环境发生冲突时,操作系统可能请求其终止。 最后,还有一种可能是应用程序本身设置了一个终止条件,当特定条件满足时,应用程序会要求运行时终止。这种情况可能是为了处理特殊事件或避免潜在的问题。例如,某些应用程序可能会在检测到严重的安全问题时请求终止。 总的来说,当我们遇到这个错误信息时,我们应该检查应用程序的代码和环境,以确定问题的根本原因。我们可以尝试重新安装应用程序、升级运行时库或修复操作系统错误来解决这个问题。如果问题仍然存在,我们可能需要咨询开发人员或技术支持团队以获取更进一步的帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值