![如何通知 Qt 应用程序用户会话即将结束,并让其有机会在终止之前保存其状态?](https://linux22.com/image/814755/%E5%A6%82%E4%BD%95%E9%80%9A%E7%9F%A5%20Qt%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%94%A8%E6%88%B7%E4%BC%9A%E8%AF%9D%E5%8D%B3%E5%B0%86%E7%BB%93%E6%9D%9F%EF%BC%8C%E5%B9%B6%E8%AE%A9%E5%85%B6%E6%9C%89%E6%9C%BA%E4%BC%9A%E5%9C%A8%E7%BB%88%E6%AD%A2%E4%B9%8B%E5%89%8D%E4%BF%9D%E5%AD%98%E5%85%B6%E7%8A%B6%E6%80%81%EF%BC%9F.png)
我正在编写一个 Qt 应用程序,遇到了以下问题:当用户注销或尝试关闭计算机时,应用程序会立即终止,而没有给它任何保存数据的机会。我假设应用程序需要监听某个事件。我尝试监听信号SIGTERM
,但我的应用程序在有机会响应信号之前就被终止了。
我有什么选择?
答案1
我开始使用 Qt 进行应用程序开发,并在 Qt 参考文档中找到了“会话管理”一章。我认为您会发现一些有趣的内容。
会话是一组正在运行的应用程序,每个应用程序都有特定的状态。会话由名为会话管理器的服务控制。参与会话的应用程序称为会话客户端。[...] 首先重新实现 QApplication::commitData(),以使您的应用程序能够参与正常注销过程。[...]
你可以找到它这里。