QSettings用反斜杠替换斜杠(注册表)

时间:2015-08-10 15:45:05

标签: windows qt registry qsettings

我用QSettings阅读了注册表。我想读的关键是:

  

HKEY_LOCAL_MACHINE \ SYSTEM \ Setup \ Source OS(2015年8月1日02:45:41更新)

由于键名 Source OS (Updated on 8/1/2015 02:45:41) 是动态的,我只需打开

QSettings settings("HKEY_LOCAL_MACHINE\\SYSTEM\\Setup", QSettings::NativeFormat);

并通过settings.childGroups()递归运行并使用以下代码构建我的密钥:

QString key = settings.fileName() + "\\" + settings.group();

但结果是:

  

\ HKEY_LOCAL_MACHINE \ SYSTEM \ Setup \ Source OS(更新于8 \ 1 \ 2015 02:45:41)

正如您所看到的,斜杠现在是反斜杠,我无法区分名称和路径。

知道为什么QSettings会将斜杠转换为反斜杠吗?

1 个答案:

答案 0 :(得分:1)

来自QSettings documentation

  

请勿在部分或键名中使用斜杠('/''\';反斜杠字符用于分隔子键(见下文)。在'\'窗口上QSettings转换为'/',这使它们相同。

通常,动态注册表项名称的概念并不是那么好。我认为更好的方法是在密钥中创建两个单独的值 - Source OSUpdated On值。