我有一个 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/