关于QSetting
1. ini 文件
; Use semicolon as comment ; childKey in global, must be in front of group child=999 1\Y=888 ; use childKeys to get child and 1
; childGroup, use [] [ group1 ] ; childKey in group key=value ; The following are array in group, 1,2 is index of array. Not belong to childKeys 1\key=value 2\key=value size=88 ; group 1 end and group2 start [ group2 ]
2. 规则
; 一定要注意逗号,等号后面的内容不加双引号,一旦使用逗号则读取为空 ; 使用英文分号作为单行注释. 分号后面的内容就不继续读取了 ; [] 里面不能有%, value里面可以有% ; [] 里面的空格个数不影响读取结果 ; 禁止任何地方使用正反斜杠 ; 1. 等号两边留不留空格都行: key = v1 v2 ; 正确 key=v1 v2 ; 正确 ; 2. 注意英文逗号 key=value1 value2 ; 正确 逗号或tab键都会被原样读入程序中 key=value1,value2 ; 错误 读取为空。有英文逗号却没有使用双引号。 key="value1,value2" ; 正确 逗号或tab键都会被原样读入程序中 key=value1, ; 错误 读取为空,不加双引号,逗号放哪都不行。 ; 3. 默认使用一个空格或一个逗号作为分隔符 key=value1, value2 ; 错误 读取为空。有英文逗号却没有使用双引号。 key=value2 80% ; 正确 key=value2 > 80% ; 正确 ; 4. 不带空格,> < >= <= == 都能正确使用。以第一个 = 区分左右的key和value ; 5. 使用双引号,后面的内容也一并会被读入(注释内容依然不会被读入) key="v1 v2" - >= = %90 * & @ ! ; 第一个等号后面的内容都被读进去了 key="v1 v2" - >= = %90 * & @ ! " ; 非常严重的错误,双引号个数不匹配! ; 6. 双引号可以连接字符串 key="v1 v2" v3 ; 读入: 'v1 v2v3' v2和v3之间的空格被合并了 ; 7. GroupName 绝对不可以有重复的。同组内重复的 key 值只会保留最后一条
3. 成员函数allKeys
如果未指定具体的group,则返回全局所有的keys(包括global key、group、array), 返回值格式如下:
![]()
如果指定了begin和end,用法则等同于childKeys:
![]()
返回值不带group前缀。
st.group():返回当前组,在begin-end里面才有效。
childKeys:在begin-end里才有效,等同于在begin-end里使用allKeys。
4. 其它
官方参考 :https://doc.qt.io/qt-5/qsettings.html

浙公网安备 33010602011771号