c++ - 可以使用 QSettings 或其他类在每次启动时存储一些设置(但在启动之间重置)吗?

标签 c++ qt qsettings

我有一个 Qt 应用程序,我已经在其中使用 QSettings 来存储启动之间的持久状态。但是,有一些类似状态的东西我只想在当前 session 有效时存储,我不希望它们在应用程序的不同启动之间持续存在。

是否有我缺少的 QSettings 选项——或者可能是其他一些基于 Qt 的解决方案?或者我基本上是在自己滚动? (以静态 std::hash_map 之类的形式,我想。)

最佳答案

一个选项可以是使用临时文件(QTemporaryFile 是一种方便的方式)来存储 session 设置,因此当您关闭应用程序(或 session ,只需关闭设置和临时文件):

QTemporaryFile tmpFile;
tmpFile.open();
QSettings sessionSettings(tmpFile.fileName(), QSettings::IniFormat);

只需将临时文件和设置存储在一起,以便它们具有相同的生命周期。

关于它的两条评论:请注意 QTemporaryFile::fileName() 返回一个空字符串,直到调用 open。此外,您还必须使用基于文件的设置格式,如 INI 或类似格式。

关于c++ - 可以使用 QSettings 或其他类在每次启动时存储一些设置(但在启动之间重置)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57471653/

相关文章:

c++ - C++ 中的错误逻辑

C++:何时隐式复制类?

c++ - 使用 __m256d 寄存器

qt - 使用 QSettings 保存 64 位整数

android - qt的QSettings访问android中的SharedPreferences

c++ - 如何使用 QSettings 在 ini 部分写入文件路径

c++ - 分配给 char* 的内存

c++ - QSemaphore 是否足以制作 QQueue 的线程安全类比?

sqlite - 在 qt 中使用 sqlite 数据库

c++ - Qt MouseMove 事件未在 eventFilter() 中被捕获