在不终止启动 Python 脚本的情况下关闭 pyqt5 GUI

Posted

技术标签:

【中文标题】在不终止启动 Python 脚本的情况下关闭 pyqt5 GUI【英文标题】:Closing pyqt5 GUI without killing the launching Python script 【发布时间】:2021-11-17 08:21:00 【问题描述】:

我在使用启动 pyqt5 GUI 的 Python 脚本时遇到问题。 从启动脚本启动 GUI 后,用户必须提供一些输入,然后通过关闭按钮关闭应用程序。与按钮关联的方法以“sys.exit()”结束,以关闭 GUI。

问题是这个命令同时关闭了 GUI 和启动 Python 脚本。

有没有办法只关闭 GUI 而不是启动脚本(在我的情况下必须做其他事情)。

【问题讨论】:

请提供minimal reproducible example 好吧,sys.exit() 确实退出了脚本。也许寻找可以退出 QT 应用程序/主循环的 QT API? 考虑设置quitOnLastWindowClosed 【参考方案1】:

把方法改成不调用sys.exit(),终止进程,而是qApp.exit(),只退出你在ma​​in中调用的qApp事件循环(exec())?

另外,sys.exit() 引发 SystemExit 异常,所以也许您可以在 ma​​in 中捕获或覆盖 QApplication.notify。

【讨论】:

以上是关于在不终止启动 Python 脚本的情况下关闭 pyqt5 GUI的主要内容,如果未能解决你的问题,请参考以下文章

PySide2:不能在不退出 APP 的情况下关闭 QMessageBox

有啥方法可以在不关闭其 BaseStream 的情况下关闭 StreamWriter?

如何在不离开当前视图的情况下关闭 modalViewController?

为啥我不能在不更改或保存更改的情况下关闭此模式?

如何在不关闭模式的情况下关闭从 modalViewController 推送的 viewController?

iOS:在不访问其父 ViewController 的情况下关闭和呈现 ModalViewController