在不终止启动 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(),只退出你在main中调用的qApp事件循环(exec())?
另外,sys.exit() 引发 SystemExit 异常,所以也许您可以在 main 中捕获或覆盖 QApplication.notify。
【讨论】:
以上是关于在不终止启动 Python 脚本的情况下关闭 pyqt5 GUI的主要内容,如果未能解决你的问题,请参考以下文章
PySide2:不能在不退出 APP 的情况下关闭 QMessageBox
有啥方法可以在不关闭其 BaseStream 的情况下关闭 StreamWriter?
如何在不离开当前视图的情况下关闭 modalViewController?