[Qt] QSettings(ini文件、注册表)[2013-08-13更新]
来源:互联网 发布:shop.m淘宝优惠券 编辑:程序博客网 时间:2024/06/08 17:09
- ini文件读写
#include <QSettings>
...
QSettings *iniFile = new QSettings("conf.ini", QSettings::IniFormat, this);
// 解决中文读写问题(for Windows)
// 程序编码设置为“SYSTEM”
iniFile->setIniCodec("UTF-8");
or
iniFile->setIniCodec("GB2312");
----------------------------------------------------------------------
QSettings *iniFile = new QSettings("conf.ini", QSettings::IniFormat, this);
// 解决中文读写问题(for Windows)
// 程序编码设置为“SYSTEM”
iniFile->setIniCodec("UTF-8");
or
iniFile->setIniCodec("GB2312");
----------------------------------------------------------------------
- 写入
// 在 [SEC_1] 中写入KEY_1、KEY_2的键值(如果 [SEC_1] 不存在则创建该节)
iniFile->beginGroup("SEC_1");
iniFile->setValue("KEY_1", "VALUE_1");
iniFile->setValue("KEY_2", "VALUE_2");
...
iniFile->endGroup();
// 在 [SEC_1] 中写入KEY_1、KEY_2的键值(如果 [SEC_1] 不存在则创建该节)
iniFile->setValue("SEC_1/KEY_1", "VALUE_1");
iniFile->setValue("SEC_1/KEY_2", "VALUE_2");
// 若不指定节,KEY_1会被保存在 [General] 中
iniFile->setValue("KEY_1", "VALUE_1");
// [General] 为保留节,用户无法指定
// 在 [SEC_1] 中写入KEY_1、KEY_2的键值(如果 [SEC_1] 不存在则创建该节)
iniFile->beginGroup("SEC_1");
iniFile->setValue("KEY_1", "VALUE_1");
iniFile->setValue("KEY_2", "VALUE_2");
...
iniFile->endGroup();
// 在 [SEC_1] 中写入KEY_1、KEY_2的键值(如果 [SEC_1] 不存在则创建该节)
iniFile->setValue("SEC_1/KEY_1", "VALUE_1");
iniFile->setValue("SEC_1/KEY_2", "VALUE_2");
// 若不指定节,KEY_1会被保存在 [General] 中
iniFile->setValue("KEY_1", "VALUE_1");
// [General] 为保留节,用户无法指定
iniFile->setValue("General/KEY_1", "VALUE_1");
上述代码输出的结果为: -------------------------------------------------
[%General] // 自动添加了“%”和系统保留的区分
KEY_1=VALUE_1
[%General] // 自动添加了“%”和系统保留的区分
KEY_1=VALUE_1
-------------------------------------------------
----------------------------------------------------------------------
- 读取
qDebug() << iniFile->allKeys(); // 返回所有键(格式:section/key)
qDebug() << iniFile->childGroups(); // 返回所有节
// 返回SEC_1节的所有键
// 若 childKeys() 在 beginGroup() 与 endGroup() 之外被调用将返回空值
iniFile->beginGroup("SEC_1");
qDebug() << iniFile->childKeys();
iniFile->endGroup();
iniFile->beginGroup("SEC_1");
qDebug() << iniFile->value("KEY_1"); // 返回 [SEC_1] 中KEY_1键的值
iniFile->endGroup();
qDebug() << iniFile->value("SEC_1/KEY_1"); // 返回 [SEC_1] 中KEY_1键的值
delete iniFile;
qDebug() << iniFile->allKeys(); // 返回所有键(格式:section/key)
qDebug() << iniFile->childGroups(); // 返回所有节
// 返回SEC_1节的所有键
// 若 childKeys() 在 beginGroup() 与 endGroup() 之外被调用将返回空值
iniFile->beginGroup("SEC_1");
qDebug() << iniFile->childKeys();
iniFile->endGroup();
iniFile->beginGroup("SEC_1");
qDebug() << iniFile->value("KEY_1"); // 返回 [SEC_1] 中KEY_1键的值
iniFile->endGroup();
qDebug() << iniFile->value("SEC_1/KEY_1"); // 返回 [SEC_1] 中KEY_1键的值
delete iniFile;
QString regKey = "SOFTWARE/Microsoft/Windows/CurrentVersion/Run/Your_Program";
QString sApp = QCoreApplication::applicationFilePath();
QString linkPath = sApp;
linkPath = linkPath.replace("exe", "lnk");
QFile::link(sApp, linkPath);
linkPath.replace("/", "\\");
QSettings *reg = new QSettings("HKEY_LOCAL_MACHINE", QSettings::NativeFormat);
if (reg->value(regKey).toString() != linkPath)
{
qDebug() << "Update regedit...";
reg->setValue(regKey, QVariant(linkPath));
}
- 开机自动运行(在MainWindow构造函数中执行)
QString sApp = QCoreApplication::applicationFilePath();
sApp.replace("/", "\\");
QSettings *reg = new QSettings("HKEY_LOCAL_MACHINE", QSettings::NativeFormat);
reg->setValue("SOFTWARE/Microsoft/Windows/CurrentVersion/Run/Your_Program", QVariant(sApp));
QString sApp = QCoreApplication::applicationFilePath();
sApp.replace("/", "\\");
QSettings *reg = new QSettings("HKEY_LOCAL_MACHINE", QSettings::NativeFormat);
reg->setValue("SOFTWARE/Microsoft/Windows/CurrentVersion/Run/Your_Program", QVariant(sApp));
- [Qt] QSettings(ini文件、注册表)[2013-08-13更新]
- Qt QSettings(遍历)读取注册表和ini文件
- Qt QSettings读取注册表和ini
- Qt 类QSettings,读取ini与注册表
- QSettings读写注册表和ini文件(转)
- QSettings读写ini文件和注册表
- QSettings读写注册表和ini文件
- QT读取ini配置文件(QSettings)
- Qt-QSetting(ini文件、注册表)
- qt注册表、ini文件操作
- QSettings 读写ini文件
- Qt编程4:QSettings使用二(普通ini文件的读写:实际操作)
- 【Qt 】QSettings写ini配置文件
- QSettings读.ini文件方法
- Qt读写注册表和ini文件
- Qt读写注册表和ini文件
- Qt读写注册表和ini文件
- Qt读写注册表和ini文件
- VS2010界面主题更换全过程
- Linux添加/删除用户和用户组
- Js中apply方法详解
- 一位10年程序员生涯的骨灰给小弟弟小妹妹们的一些总结性忠告
- socket网络编程--初等网络函数介绍
- [Qt] QSettings(ini文件、注册表)[2013-08-13更新]
- <职场定位需要思考的一些问题------给大学毕业生的建议>
- linker command failed with exit code 1 (use -v to see invocation)
- ASP.NET常用对象
- Tarjan求强连通分量的讲解与实现
- DP基本概括
- Linux下poll编程
- matlab在mac环境下出现的/Applications/MATLAB_R2011b.app/bin/mex: line 305: gcc-4.2: command not found
- 虚拟机下为ubuntu添加硬盘和快捷键