qt4使用QSettings来保存设置、读取设置
2009-09-22 15:03
531 查看
http://www.qtcn.org/bbs/read.php?tid=1101
qt4.0一个非常有用的类QSettings
QSettings
是qt4.0提供的一个读取配置文件的类,在windows平台,它提供了ini文件读些,注册表读写的功能。
而且使用也非常简单。大家可以参照它的示例:$QTDIR/examples/tools/settingseditor
我就简单点随便介绍介绍它的使用吧
QSettings
::Format有两种:
QSettings
::NativeFormat在windows平台可以读写windows注册表.
QSettings
::IniFormat可以读写ini格式的配置文件
在Unix/X11平台下这两个Format效果是一样的:(
1.读写注册表
//注意的就是路径名必须是"/"而不是"//"等.否则不能读写,同时注意
//Format为QSettings
::NativeFormat
QSettings
*settings = new QSettings
("HKEY_CURRENT_USER/", QSettings
::NativeFormat);
//写HKEY_CURRENT_USER/regedit/test,设置test值为red
settings->setValue("regedit/test", "red");
//读 HKEY_CURRENT_USER/regedit/test,默认值是ddd
QString value = settings->value("regedit/test", "ddd").toString();
删除设置对应的是settings->remove( const QString & key )
2.读取ini配置文件
ini文件格式如下:
[Alpha]
Beta/Beta=1, 3, 4
Beta/Gamma=2
Beta/Delta=1111
Beta/Epsilon=5
Iota=7
Omicron=11
QSettings
*settings = new QSettings
(fileName, QSettings
::IniFormat);
//写Beta/Beta
settings->setValue("Alpha/Beta/Beta", 68);
其他和读写注册表差不多,我就懒得写了
发觉QT4读写的这种配置,即可兼容windows下的ini文件,同时它的功能也比windows API所提供的功能强.
//这是中文化的文章:----------------------------------------------------------------------------------------------
http://blog.csdn.net/eastfind/archive/2009/01/15/3785060.aspx
说句实话,关于这个类(QSETTINGS
)的摸索,只有一个字形容“累”
出于对国际化的考虑,QT的UNICODE支持非常出色,但是,对于中文的支持,还是有点繁琐的。
废话少说,国际惯例
1.运行环境
QT CREATOR 0.9(BETA) //QT的官方IDE,界面不错,还算实用
MINGW编译器(QT CREATOR 自带)
WINXP SP3 QT4.4.3 OPEN SOURCE 版本
2.INI文件模式
[我的资料]
我的博客=www.我的博客.com
3.代码解析
QString
myfile = "../1.ini"; //设定INI文件
QSettings
*mySetting = new QSettings
(myfile,QSettings
::IniFormat); //没有什么好解释的,用[b]QSETTINGS
的都知道[/b]
QByteArray
myArray = mySetting->value("我的资料/我的博客","Default Value").toByteArray();
//这里是整个技术的核心!!通过实践证明,[b]QSETTINGS
是可以直接读取中文的QSTRING的,不过真正的意义在于把QSETTING的读取返回值放入
[/b]
到QByteArray中才是关键。
QTextCodec
*codec=QTextCodec
::codecForName("GBK"); //设定字符集为GBK(大小写均可,还可用GB18030代替)
QString
outStr = codec->toUnicode(myArray); //这里就好解释了,通过译码器将字节数组中的值转化为UNICODE的QSTRING就O了
myEdit->setText(outStr); //呵呵,这句话是测试用的,我用的QLINEEDIT,其实用什么都无所谓的
qt4.0一个非常有用的类QSettings
QSettings
是qt4.0提供的一个读取配置文件的类,在windows平台,它提供了ini文件读些,注册表读写的功能。
而且使用也非常简单。大家可以参照它的示例:$QTDIR/examples/tools/settingseditor
我就简单点随便介绍介绍它的使用吧
QSettings
::Format有两种:
QSettings
::NativeFormat在windows平台可以读写windows注册表.
QSettings
::IniFormat可以读写ini格式的配置文件
在Unix/X11平台下这两个Format效果是一样的:(
1.读写注册表
//注意的就是路径名必须是"/"而不是"//"等.否则不能读写,同时注意
//Format为QSettings
::NativeFormat
QSettings
*settings = new QSettings
("HKEY_CURRENT_USER/", QSettings
::NativeFormat);
//写HKEY_CURRENT_USER/regedit/test,设置test值为red
settings->setValue("regedit/test", "red");
//读 HKEY_CURRENT_USER/regedit/test,默认值是ddd
QString value = settings->value("regedit/test", "ddd").toString();
删除设置对应的是settings->remove( const QString & key )
2.读取ini配置文件
ini文件格式如下:
[Alpha]
Beta/Beta=1, 3, 4
Beta/Gamma=2
Beta/Delta=1111
Beta/Epsilon=5
Iota=7
Omicron=11
QSettings
*settings = new QSettings
(fileName, QSettings
::IniFormat);
//写Beta/Beta
settings->setValue("Alpha/Beta/Beta", 68);
其他和读写注册表差不多,我就懒得写了
发觉QT4读写的这种配置,即可兼容windows下的ini文件,同时它的功能也比windows API所提供的功能强.
//这是中文化的文章:----------------------------------------------------------------------------------------------
http://blog.csdn.net/eastfind/archive/2009/01/15/3785060.aspx
说句实话,关于这个类(QSETTINGS
)的摸索,只有一个字形容“累”
出于对国际化的考虑,QT的UNICODE支持非常出色,但是,对于中文的支持,还是有点繁琐的。
废话少说,国际惯例
1.运行环境
QT CREATOR 0.9(BETA) //QT的官方IDE,界面不错,还算实用
MINGW编译器(QT CREATOR 自带)
WINXP SP3 QT4.4.3 OPEN SOURCE 版本
2.INI文件模式
[我的资料]
我的博客=www.我的博客.com
3.代码解析
QString
myfile = "../1.ini"; //设定INI文件
QSettings
*mySetting = new QSettings
(myfile,QSettings
::IniFormat); //没有什么好解释的,用[b]QSETTINGS
的都知道[/b]
QByteArray
myArray = mySetting->value("我的资料/我的博客","Default Value").toByteArray();
//这里是整个技术的核心!!通过实践证明,[b]QSETTINGS
是可以直接读取中文的QSTRING的,不过真正的意义在于把QSETTING的读取返回值放入
[/b]
到QByteArray中才是关键。
QTextCodec
*codec=QTextCodec
::codecForName("GBK"); //设定字符集为GBK(大小写均可,还可用GB18030代替)
QString
outStr = codec->toUnicode(myArray); //这里就好解释了,通过译码器将字节数组中的值转化为UNICODE的QSTRING就O了
myEdit->setText(outStr); //呵呵,这句话是测试用的,我用的QLINEEDIT,其实用什么都无所谓的
相关文章推荐
- qt4使用QSettings来保存设置、读取设置
- 程序启动读取和关闭时保存应用程序设置(QSettings)
- 程序启动读取和关闭时保存应用程序设置(QSettings)
- Android app系统设置界面 数据的保存与读取 SharedPreferences 的正确使用
- 程序启动读取和关闭时保存应用程序设置(QSettings)
- 程序启动读取和关闭时保存应用程序设置(QSettings)
- Android下使用Properties文件保存程序设置
- python使用numpy读取、保存txt数据的实例
- Navicat for SQL使用注意(设置默认字符集,外键保存不了)
- 使用DOM模型读取网页表格并保存为Excel
- 合理使用DataSet和DataGridView读取xml文件到DataGridView;保存DataGridView到xml文件
- 使用.NET 反射机制(Reflecttion)读取和保存Xml配置文档
- [软件使用]TeamViewer不能保存设置
- 使用ini文件进行一些设置的保存
- JavaScript使用cookie,参数设置,说明;读取,写入,删除函数
- 从XML文件读取数据动态设置Tree控件使用
- Android下使用Properties文件保存程序设置
- C# 使用List泛型读取和保存文本文件
- Windows8 Metro开发 (04) : 保存/读取本地应用程序设置
- 数据库操作_连接SQL Server数据库示例;连接ACCESS数据库;连接到 Oracle 数据库示例;SqlCommand 执行SQL命令示例;SqlDataReader 读取数据示例;使用DataAdapter填充数据到DataSet;使用DataTable存储数据库表;将数据库数据填充到 XML 文件;10 使用带输入参数的存储过程;11 使用带输入、输出参数的存储过程示;12 获得数据库中表的数目和名称;13 保存图片到SQL Server数据库示例;14 获得插入记录标识号;Exce