我正在使用 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/