c++ - 可以使用 QSettings 或其他类在每次启动时存储一些设置(但在启动之间重置)?
问题描述
我有一个 Qt 应用程序,我已经在使用QSettings
它来存储启动之间的持久状态。但是,只要当前会话有效,我就想存储一些类似状态的东西,并且我不希望它们在应用程序的不同启动之间持续存在。
有没有QSettings
我错过的选项 - 或者可能是其他一些基于 Qt 的解决方案?还是我基本上坚持自己滚动?(我想以静态std::hash_map
或其他形式。)
解决方案
一种选择是使用临时文件(QTemporaryFile
这是一种方便的方法)来存储会话设置,因此当您关闭应用程序(或会话,只需关闭设置和临时文件)时它会自动销毁:
QTemporaryFile tmpFile;
tmpFile.open();
QSettings sessionSettings(tmpFile.fileName(), QSettings::IniFormat);
只需将临时文件和设置存储在一起,以便它们具有相同的寿命。
对此有两条评论:请注意,直到被调用QTemporaryFile::fileName()
时返回一个空字符串。open
此外,您必须使用基于文件的设置格式,如 INI 或类似格式。
推荐阅读
- c# - DataGrid 中的 WPF 切换列可见性触发不需要的事件
- node.js - 如何使用passport google o auth实现我们自己的自定义注册表单?
- sql-server - 从 Azure 弹性数据库作业读取 Oracle 数据库
- javascript - npm 库/框架下载量大幅下降。有谁知道为什么?
- azure-functions - 需要 Azure 持久功能活动触发器吗?
- c# - Asp.Net Core 2.1 ApiController 不会在单元测试下自动验证模型
- python - 绘制一个返回浮点数组的自定义函数
- javascript - 如何将提供程序正确附加到 reactDOM.render
- visual-studio-code - 在 VS Code Explorer 中对文件进行排序
- python - 错误:tensorflow.python.framework.errors_impl.InvalidArgumentError: indices[3,7] = -1 is not in [0, 20000)