QSetting使用小结

1、文件生成
QSettings *mSettings = new QSettings(“UbuntuKylin”, “youker-assistant”);
mSettings->setIniCodec(“UTF-8”);
这时如果在当前用户主目录的.config/下面不存在UbuntuKylin/youker-assistant.conf文件,则会自动生成。

:3_42:

2、QSetting有键和值组成,使用QString指定键key的名字,使用QVariant来存储和key相关联的值,设定key,使用setValue(),例如

Setting.setValue(“editor/warpMargin”,68);

如果已经存在了同名的key,那么新的值会覆盖原来的值

获取setting的值使用value()函数

Intmargin=setting.value(“editor/warpMargin”).toInt();

如果没有指定的key,那么value()会返回一个Null QVariant,也可以为value()指定一个缺省的值,如下面

Intmargin=setting.value(“editor/warpMargin,80).toInt();

缺省值就是80,value()返回的值是一个QVariant,把他转换成int类型

在不同的进程中使用QSetting来读写同一个setting文件是安全的,它使用文件锁和智能合并算法来保证数据的完整,在sync()调用之前,这个进程中的修改在另一个进程中是不可见的, QSetting::sync()的作用是将那些未保存的修改永久写进存储中,并且在其他进程中重新载入这些修改的设置,这个函数被QSetting的析构函数自动调用,也被事件循环定期调用,一般情况下不需要手动调用。

congfig文件只能保存在.config下吗?可以将config文件保存到自定义的路径吗?

可以的,那个只是默认路径