Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt QSettings:sync何时同步?_Qt_Synchronization_Qsettings - Fatal编程技术网

Qt QSettings:sync何时同步?

Qt QSettings:sync何时同步?,qt,synchronization,qsettings,Qt,Synchronization,Qsettings,从Qt帮助功能: void QSettings::sync() 将任何未保存的更改写入永久存储器,并重新加载同时由另一个应用程序更改的任何设置。 这个函数是由QSettings的析构函数和事件循环定期自动调用的,因此您通常不需要自己调用它 “同时”在这里到底是什么意思?这是否总是将我的设置重置到我启动程序时的位置,这意味着在使用sync()时,我永远无法在运行时更改配置?您可以假设QSettings是作为全局std::map实现的,其作用类似于设置的缓存。文件说: QSettings存储设置。每

从Qt帮助功能:

void QSettings::sync() 将任何未保存的更改写入永久存储器,并重新加载同时由另一个应用程序更改的任何设置。 这个函数是由QSettings的析构函数和事件循环定期自动调用的,因此您通常不需要自己调用它


“同时”在这里到底是什么意思?这是否总是将我的设置重置到我启动程序时的位置,这意味着在使用sync()时,我永远无法在运行时更改配置?

您可以假设QSettings是作为全局
std::map
实现的,其作用类似于设置的缓存。文件说:

QSettings存储设置。每个设置由一个指定设置名称(键)的QString和一个存储与键关联的数据的QVariant组成

出于效率原因,文件中说:

为了提高效率,更改可能不会立即保存到永久存储器。(您始终可以调用sync()来提交更改。)

每次修改设置时,都会更新缓存值,但不会更新持久文件。QSettings的行为取决于平台

如果您想知道它存储/刷新硬盘中文件的频率,您需要知道文件的位置

您可以使用类和
QStandardPaths::ConfigLocation
标记检索路径:

qDebug() << QStandardPaths::writableLocation(QStandardPaths::ConfigLocation);
qDebug()