博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Qt配置信息设置(QSettings在不同平台下的使用路径)
阅读量:4221 次
发布时间:2019-05-26

本文共 1832 字,大约阅读时间需要 6 分钟。

在Windows操作系统中,大多把配置文件信息写在注册表当中,或写在*.ini文件中,对于这两种操作都有相应的Windows API函数,在以前的文章中都提及过,这里就不多说了~
在Qt中,提供了一个相应的配置文件的类QSetting,使用QSetting类,可以将用户设置以及应用程序的设置轻松存储在磁盘中。
QSettings::Scope(配置存储范围)分为UserScope、SystemScope。
QSettings::UserScope:用户环境,设置在当前用户的特定位置中。
QSettings::SystemScope:系统环境,设置在全局型,所有用户均可获得。
以下是对应QSettings::Format和QSettings::Scope存放的默认路径位置,其中*表示的是对应的程序名称:

Platform         Format                      Scope                    Path

Windows        NativeFormat             UserScope             HKEY_CURRENT_USERSoftware*

                                                     SystemScope         HKEY_LOCAL_MACHINESoftware*
                     IniFormat                  UserScope              %APPDATA%*.ini
                                                     SystemScope         %COMMON_APPDATA%*.ini
Unix              NativeFormat             UserScope              $HOME/.config/*.conf
                                                     SystemScope         /etc/xdg/*.conf
                     IniFormat                  UserScope              $HOME/.config/*.ini
                                                     SystemScope         /etc/xdg/*.ini
Mac OS X      NativeFormat             UserScope             $HOME/Library/Preferences/com.*.plist
                                                     SystemScope         /Library/Preferences/com.*.plist
                     IniFormat                  UserScope             $HOME/.config/*.ini
                                                     SystemScope         /etc/xdg/*.ini

在读写时,路径名必须是"/"而不是"\"等。否则不能读写,注意。
以Windows XP平台为例,举俩个例子程序~
■、读写注册表

//Format为QSettings::NativeFormat

QSettings settings("HKEY_CURRENT_USER\Software\Microsoft\Office",
                    QSettings::NativeFormat);
//设置键值信息
settings.setValue("11.0/Outlook/Security/DontTrustInstalledFiles", 0);
//获取键值信息
int value = settings.value("11.0/Outlook/Security/DontTrustInstalledFiles").toInt();

对应的值可是bool,double,QString,QStringList,或者是其他QVariant支持的数据类型,也包括注册过的用户自定义类型。
删除设置对应的是settings->remove( const QString & key );
■、读取ini配置文件
先定义下software.ini文件的格式,比较简单:
[bolg]
Name = "vic.MINg"

//Format为QSettings::IniFormat

QSettings *setIni=new QSettings ("software", QSettings::IniFormat); 
//设置键值信息
setIni->beginGroup("bolg"); 
setIni->setValue("Name", "vic.MINg"); 
setIni->endGroup(); 
//获取键值信息
setIni->beginGroup("bolg"); 
QString resault = setIni->value("Name").toString(); 
setIni->endGroup(); 
qDebug()<<resault;

QSetting的应用并不难,但很有用,一些更细致的操作用法,可以参看帮助文档!
可以参照示例:$QTDIRexamplestoolssettingseditor 

转载地址:http://riemi.baihongyu.com/

你可能感兴趣的文章
cocos2dx lua Node节点 私有数据存取
查看>>
lua math.ceil math.ceil
查看>>
cocos2dx CCNode计算node的大小
查看>>
cocos2dx 布局记录(1)
查看>>
lua 多行注释和取消多行注释
查看>>
缩放系数计算
查看>>
cocos2dx --- 按钮点击居中放大
查看>>
cocos2dx menu位置计算
查看>>
cocos2dx资源加载机制(同步/异步)
查看>>
cocos2dx C++调用java -- 字符串传递
查看>>
git学习网站
查看>>
JavaScript 学习网站
查看>>
cocos2dx java调用c++ -- 字符串传递
查看>>
CCScaleTo与CCScaleBy比较
查看>>
cocos2dx CCObject引用计数,内存释放分析(1)
查看>>
cocos2dx2.X 编译时,传递编译选项
查看>>
ccCArray.cpp 文件
查看>>
cocos2dx 屏幕大小
查看>>
libgdx: 2D Particle Editor工具使用
查看>>
eclipse 给jar库添加源码
查看>>