Qt Q应用程序:commitData,Windows关闭,令人困惑的文档
Qt QApplication::commitData, Windows shutdown, confusing documentation
我很困惑在QApplication::commitData
中应该做什么和不应该做什么。这个名称意味着我应该只存储状态,而文档说它不应该关闭应用程序。但是,默认实现确实关闭了所有窗口,从而关闭了应用程序。此外,如果这不是检测窗口关闭的方法,我看不出有任何其他方法可以判断窗口确实正在关闭。
还有相关的CCD_ 2。函数名称的含义大致相同,文档也非常相似。
我应该如何正确检测系统何时关闭,并保存我的状态和关闭我的应用程序?commitData
真的是正确的方式吗?只是名字很差,文档不好?
在我检测应用程序关闭的实践中,我通常连接到插槽void QCoreApplication::aboutToQuit ()
。正如文档中所说:
如果您的应用程序必须在最后一秒进行清理,则该信号特别有用。请注意,在此状态下不可能进行任何用户交互。
到目前为止,这对我来说很好。
commitData()和saveState()可能显得多余。
但是文件表示
此外,大多数会话管理器很可能会在应用程序启动后立即请求保存状态。这允许会话管理器了解应用程序的重新启动策略。
也许这就解释了为什么"数据"answers"状态"的概念是分开的。在最初的通话过程中,与用户进行交互是不友好的。
关闭应用程序的默认响应似乎是一个很好的设计,因为如果你不重新实现,那么最安全的做法是关闭应用程序(就像用户选择了退出操作一样),这也应该保存用户的数据。
操作系统正在关闭,还是仅关闭会话?就你的应用程序而言,这只是会话(因为从技术上讲,用户可能正在注销,操作系统继续运行。)用户可能会认为应用程序没有"关闭",只是"在数据安全的情况下暂停"
还可以考虑像iOS这样的移动平台,在那里应用程序似乎永远运行。
- 正在查找文档以获得PS4平台的C++中的设备信息
- 如何在文档文件夹中创建目录
- 当Microsoft文档仅包含 C# 示例时,如何查找 C++ 包含文件名
- 通过构造函数创建一些值并尝试添加到文档中使用 rapidjson 不起作用
- 关于类的 Python 文档 - 对C++的引用不正确
- C++/autoconf 等效于文档库要求.txt的要求是什么?
- mbed:使用 USB 文档库编译会导致错误
- C++ VISUAL STUDIO:GLFWwindow没有初始化,即使它是在文档中编写的并且以前工作过
- 使用 yaml-cpp 更新 YAML 文档的节点和值
- 在加载 MSHTML 文档之前从 MSHTML 文档中删除无效的 URL
- 如何在C++中表示JSON文档的递归对象结构?
- 如何查找 Redshift Maya API 文档?
- 如何使用值模板编写文档测试用例?
- 如何使用 Gradle DSL(领域特定语言)上的文档?
- 从Windows上的系统工作的服务中获取用户文档文件夹.C++
- 打开Windows Explorer中的公共文档文件夹
- Windows设备属性文档
- Windows 8:如何以编程方式读取用户文档文件夹路径(使用 c)
- Qt Q应用程序:commitData,Windows关闭,令人困惑的文档
- Windows:打开命名文档