python - PyQt5 正确销毁一个程序

标签 python pyqt5

我正在使用 self.setWindowFlags(Qt.Tool) 来隐藏任务栏上的应用程序。然而,我意识到即使我按下程序右上角的 x,它仍然在后台运行(我在任务管理器/进程中看到它)。所以这意味着程序没有正确关闭。这是因为我使用了 self.setWindowFlags(Qt.Tool) 吗?我该如何解决这个问题,那个标志选项隐藏了程序的图标,但即使我按 x 关闭程序,它仍在后台运行。

最佳答案

在 Qt 中,应用程序将继续运行,直到主事件循环收到退出信号。在大多数应用程序中,这是在最后一个(或唯一一个)QMainWindow 被销毁时提供的(参见 QApp.setQuitOnLastWindowClosed())。

QMainWindow 上设置 Qt.Tool 标志会清除 WA_QuitOnClose 标志,这意味着关闭窗口将不再发出退出应用程序的信号.但是,您可以将此标志重新打开 as described in this post on the Qt forum .

window = QMainWindow(None, Qt.Tool)
window.show() # must be called before setting Qt::WA_QuitOnClose
window.setAttribute(Qt.WA_QuitOnClose)

或者,您也可以使用 QApp.quit() 手动触发退出。

关于python - PyQt5 正确销毁一个程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37596489/

相关文章:

python - 分配一个空列表使其变为 bool 值?

python - Statsmodel Summary_col latex 格式错误

python - 按日期升序和降序排列的列

python - 如何设置 QTextEdit 中每行的最大字符数

python - 如何向 PyQt 中的事件循环发出自定义事件

python - TensorFlow 中的 RNN 单元命名问题

python - Selenium 防止 chromedriver 新窗口在 Ubuntu 16.04 LTS 上获得焦点

python - 使内容和选项卡在pyqt5中可扩展

python - 如何在PyQt5中为对话框添加最小化和最大化图标?

python - 如何将抓取的项目放入 Pyqt5 小部件中?