QSettings *ConfigIni = new QSettings(QSettings::Ini);
ConfigIni->insertSearchPath(QSettings::Unix, "/home/Dawei");.//配置文件目录
ConfigIni->writeEntry(QString::fromUtf8("/config./opt/参数1"), QString::fromUtf8("中文"));
String aaa = ConfigIni->readEntry(QString::fromUtf8("/config./opt/参数1");
delete ConfigIni;
会在/home/Dawei目录下生成config.rc配置文件内容为
[opt]
参数1=中文
---------------------------------------
QSettings settings("../etc/bpms.conf", QSettings::IniFormat, &app);
QString db_hostname = settings.value("hostname").toString();
QString db_database = settings.value("database").toString();
QString db_username = settings.value("username").toString();
QString db_password = settings.value("password").toString();
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName(db_hostname);
db.setDatabaseName(db_database);
db.setUserName(db_username);
db.setPassword(db_password);
---------------------------------------------------------------
需要#include <QSettings>
只举几个简单的例子:
1、用QSettings写注册表
- QSettings *reg =newQSettings("HKEY_CURRENT_USER//Software//yinhaifan",
- QSettings::NativeFormat);
- reg->setValue("registered",true);
- deletereg;
QSettings *reg = new QSettings("HKEY_CURRENT_USER//Software//yinhaifan", QSettings::NativeFormat); reg->setValue("registered",true); delete reg;
当然reg->setValue还可以写入字符串,整型之类的数据。
比如reg->setValue("registered","yes");
2、用QString读注册表
- QSettings *reg =newQSettings("HKEY_CURRENT_USER//Software//yinhaifan",
- QSettings::NativeFormat);
- if(reg->value("registered",false).toBool())
- {
- QMessageBox::information(NULL,"information","registered");
- }
- deletereg;
QSettings *reg = new QSettings("HKEY_CURRENT_USER//Software//yinhaifan", QSettings::NativeFormat); if (reg->value("registered",false).toBool()) { QMessageBox::information(NULL,"information","registered"); } delete reg;
还可以toInt(),toString()等。
3、用QSettings写ini文件:
- QSettings *ConfigIni =newQSettings("D://a.ini",QSettings::IniFormat,0);
- ConfigIni->setValue("/config/node1",ui->lineEdit->text());
- deleteConfigIni;
QSettings *ConfigIni = new QSettings("D://a.ini",QSettings::IniFormat,0); ConfigIni->setValue("/config/node1",ui->lineEdit->text()); delete ConfigIni;
4、用QSettings读ini文件:
- QSettings *ConfigIni =newQSettings("D://a.ini",QSettings::IniFormat,0);
- ui->lineEdit_2->setText(ConfigIni->value("/config/node1","20").toString());
- deleteConfigIni;
QSettings *ConfigIni = new QSettings("D://a.ini",QSettings::IniFormat,0); ui->lineEdit_2->setText(ConfigIni->value("/config/node1","20").toString()); delete ConfigIni;
这几段代码都是在Qt Creator里面写的,所以用ui->lineEdit*->text()和ui->lineEdit*->setText()做输入和输出了。
在文档中的QSettings Class Reference部分讲的很清楚
---------------------------------------------------------------------
m_nDevNo = nDevNo;
QString strTemp;
QString xmlPath = CSC_APP.m_strWorkPath + "/InitInfo.ini";
QSettings *mySetting = new QSettings(xmlPath,QSettings::IniFormat);
foreach (QString group, mySetting->childGroups())
{
mySetting->beginGroup(group);
foreach (QString key, mySetting->childKeys())
{
QTextCodec *codec=QTextCodec::codecForName("GBK");
QString outStr = codec->toUnicode(key.toLatin1());
if (outStr == "自描述语言")
{
if ( mySetting->value(key,"0").toInt() == 1)
ui.SelfDspLgu->setCurrentIndex(1);
else
ui.SelfDspLgu->setCurrentIndex(0);
}
if (outStr == "工作语言")
{
if ( mySetting->value(key,"0").toInt() == 1)
ui.WorkLgu->setCurrentIndex(1);
else
ui.WorkLgu->setCurrentIndex(0);
}
if (outStr == "离线工作")
{
if ( mySetting->value(key,"0").toInt() == 1)
ui.WorkMode->setCurrentIndex(1);
else
ui.WorkMode->setCurrentIndex(0);
}
if (outStr == "召唤自描述方式")
{
if ( mySetting->value(key,"0").toInt() == 1)
ui.SelfDspSource->setCurrentIndex(1);
else
ui.SelfDspSource->setCurrentIndex(0);
}
if (outStr == "组播地址")
{
strTemp = mySetting->value(key,"236.8.8.8").toString();
ui.GrpAddress->setText(strTemp);
}
if (outStr == "接收端口号")
{
strTemp = mySetting->value("接收端口号","2000").toString();
ui.RecPort->setText(strTemp);
}
if (outStr == "发送端口号")
{
strTemp = mySetting->value("发送端口号","2001").toString();
ui.TargetPort->setText(strTemp);
}
if (outStr == "启用本机地址")
{
strTemp = mySetting->value(key,"0").toString();
}
if (outStr == "本机地址")
{
strTemp = mySetting->value(key,"0").toString();
ui.LocalIp->setText(strTemp);
}
if (outStr == "装置名称")
{
strTemp = mySetting->value(key,"0").toString();
ui.EqpName->setText(strTemp);
}
if (outStr == "装置地址")
{
strTemp = mySetting->value(key,"0").toString();
ui.EqpAddress->setText(strTemp);
}
if (outStr == "装置IP")
{
strTemp = mySetting->value(key,"0").toString();
ui.TargetIp->setText(strTemp);
}
}
mySetting->endGroup();
本文出自 “今年我们二十三四” 博客,请务必保留此出处http://no001.blog.51cto.com/1142339/383314
相关推荐
Qt之读写*.ini配置文件,可设置为中文字符串不乱码, Qt5.12.7,编译器 MinGW 64
qt读写ini例子
一背景1ini文件介绍.ini文件是InitializationFile的缩写,即初始化文件。除了windows现在很多其他操作系统下面…阅读数 4万+博文来自
QSettings有时候不好用,所以用QFile写了个读写ini文件的模块 Qt 基于QFile 读写ini文件(包含QFile读取行,修改行数据,删除行数据)
可以便捷读写ini文件,直接调用传参即可。
手动创建ini文件,读取ini文件数据,识别用户名和密码
Qt5.8平台下QWidget读写ini文件 这是一个demo文件 这是一个demo文件
源代码,详细介绍了Qt读写ini的方法,ini可以存数据和字符串,端口,IP等。必备
Qt实战案例之利用QSettings读写ini配置文件,本案例介绍利用QSettings实现Qt读写ini配置文件,Qt5、Qt6可完美运行,可参考文章:https://wendy.blog.csdn.net/article/details/124949978
代码演示了使用QSettings创建、设置和读取ini文件的过程。
读取XXX.ini配置文件里面数据信息 1.在使用中把CIniFile类添加到项目当中,并在使用的类引用CIniFile类 2.m_iniFile = new CIniFile(QCoreApplication::applicationDirPath()+ MoonlightService); [MoonlightService...
利用QT程序来读写配置文件的例子,用到了QSettings类可以非常方便的对配置文件进行读写
详细描述见博客http://blog.csdn.net/d759378563 Qt读取ini配置文件
QT使用结构体生成读写配置文件数据代码
测试环境 Qt5.12.10 QtCreator 4.13.1 MinGW32bit 读ini文件读写测试 文章路径https://blog.csdn.net/weixin_49500446/article/details/117789756
qt封装读写ini文件,同时提供可以编译运行的demo,可以在pro中引用pri进行功能添加
qt 界面,简单的文件读取 写入,欢迎交流学习
将ini读写制作成工具类,直接建立工程,将文件.h,.cpp添加,然后直接调用即可,在文件目录下建立ini文件,读写直接调用函数即可
ini读写配置文件类封装
1. 从文本文件(TXT, INI等)中读取指定行的内容 2. 代码实测OK