我想编写一个 Qt 应用程序,其主要目的是警告用户在关闭计算机之前有一些事情要做。我认为这是可能的,因为许多应用程序在计算机即将关闭时要求用户在退出之前保存。我还希望用户能够中断关闭过程,就像那些应用程序允许用户说“取消”一样。
有没有办法在 Qt 中做到这一点?
如果没有,至少在 gnome 会话中如何做到这一点?(支持更多桌面环境会很好,但目前这个应用程序仅供我和我的朋友使用,我们都使用 gnome。)
我阅读了有关信号的信息QCoreApplication::aboutToQuit()
,但文档说它不允许用户交互。我的应用程序不使用任何小部件(可能只是一个系统托盘图标),因此QWidget::closeEvent
也没有任何用处。
处理适当的posix信号会有帮助吗?但据我所知,这样的信号处理程序可能只包含琐碎的语句,询问用户是否真正关闭并非易事。
如果有帮助,这里有一些细节: 当用户想要关闭计算机时,我的应用程序将检查存储库(他配置为监视)是否“干净”,即没有什么可以提交。如果有东西要提交,应用程序应该警告用户并让他选择忽略未提交的文件或中止关闭过程(以提交更改)。