QSettings settings("xxxx.ini",QSettings::IniFormat);
settings.setIniCodec(QTextCodec::codecForName("GB2312")); //在此添加设置,即可读写ini文件中的中文setup.ini文件内容: [Rooms]
\RoomName=Room1
\PC\\PCName=PC1
\PC\\IP=192.168.1.121
\PC\\App=C:\\chess.exe
\PC\\MACAddress=A0-2C--9E--FB
\PC\\PCName=PC2
\PC\\IP=192.168.1.152
\PC\\App=D:\\chess.exe
\PC\\MACAddress=-D5---1E-
\PC\\PCName=PC3
\PC\\IP=192.168.1.153
\PC\\App=D:\\chess.exe
\PC\\MACAddress=-----
\PC\size=
\RoomName=Room2
\PC\\PCName=PC1
\PC\\IP=192.168.1.121
\PC\\App=C:\\chess.exe
\PC\\MACAddress=-----
\PC\\PCName=PC2
\PC\\IP=192.168.1.152
\PC\\App=D:\\chess.exe
\PC\\MACAddress=-D5---1E-
\PC\\PCName=PC3
\PC\\IP=192.168.1.153
\PC\\App=D:\\chess.exe
\PC\\MACAddress=-----
\PC\\PCName=PC4
\PC\\IP=192.168.1.154
\PC\\App=D:\\chess.exe
\PC\\MACAddress=-----
\PC\size=
\RoomName=Room5
\PC\\PCName=PC1
\PC\\IP=192.168.1.121
\PC\\App=C:\\chess.exe|D:\\A.exe|D:\\B.exe|D:\\C.exe
\PC\\MACAddress=-----
\PC\\PCName=PC2
\PC\\IP=192.168.1.152
\PC\\App=D:\\chess.exe|D:\\A.exe|D:\\B.exe|D:\\C.exe
\PC\\MACAddress=-D5---1E-
\PC\\PCName=PC3
\PC\\IP=192.168.1.153
\PC\\App=D:\\chess.exe|D:\\A.exe|D:\\B.exe|D:\\C.exe
\PC\\MACAddress=-----
\PC\\PCName=PC4
\PC\\IP=192.168.1.154
\PC\\App=D:\\chess.exe|D:\\A.exe|D:\\B.exe|D:\\C.exe
\PC\\MACAddress=-----
\PC\size=
size=
// 读取配置文件代码
QSettings* configIniRead = new QSettings(
QCoreApplication::applicationDirPath()+"/setup.ini", QSettings::IniFormat);
int roomCnt = configIniRead->beginReadArray("rooms");
for (int i = ; i < roomCnt; ++i) {
configIniRead->setArrayIndex(i);
QString roomName = configIniRead->value("RoomName").toString();
int pcCnt = configIniRead->beginReadArray("PC");
for (int j = ; j < pcCnt; ++j) {
configIniRead->setArrayIndex(j);
QString name = configIniRead->value("PCName").toString();
QString ip = configIniRead->value("IP").toString();
QString app = configIniRead->value("App").toString();
QString mac = configIniRead->value("MacAddress").toString();
//qDebug()<<app;
QStringList list;
list<<name<<ip<<app<<mac;
rooms[roomName].push_back(list);
}
configIniRead->endArray();
}
configIniRead->endArray();
setup.ini内容:
[General]
isServer=true 读取代码:
QString appDirPath = QCoreApplication::applicationDirPath();
QSettings* configIniRead = new QSettings(appDirPath+"/setup.ini", QSettings::IniFormat);
bool isServer = false;
if( configIniRead->allKeys().size() > )
{
isServer = configIniRead->value("isServer").toBool();
//httpServerPort = configIniRead->value("httpServerPort").toInt();
qDebug() <<isServer<< "use setup.ini setting." ;
}
else
{
qDebug() << "have no setup.ini , use default setting ." ;
}
QString appDirPath = QCoreApplication::applicationDirPath();
QSettings* configIniRead = new QSettings(appDirPath+"/setup.ini", QSettings::IniFormat); // test
/*
configIniRead->beginGroup("mainwindow");
configIniRead->setValue("size", 122);
configIniRead->setValue("fullScreen", 1);
configIniRead->endGroup();
configIniRead->beginGroup("outputpanel");
configIniRead->setValue("visible", 1);
configIniRead->endGroup();
settings.setValue("fridge/color", QColor(Qt::white));
settings.setValue("fridge/size", QSize(32, 96));
settings.setValue("sofa", true);
settings.setValue("tv", false);
QStringList keys = settings.allKeys();
// keys: ["fridge/color", "fridge/size", "sofa", "tv"]
QStringList keys = settings.childKeys();
// keys: ["sofa", "tv"]
QStringList groups = settings.childGroups();
// groups: ["fridge"]
configIniRead->beginWriteArray("logins");
for (int i = 0; i < 3; ++i) {
configIniRead->setArrayIndex(i);
configIniRead->setValue("userName", i);
configIniRead->setValue("password", "0a");
}
configIniRead->endArray();
*/

Qt 配置文件QSettings的更多相关文章

  1. Qt 配置文件QSettings读取以及中文问题

    QSettings settings("xxxx.ini",QSettings::IniFormat);settings.setIniCodec(QTextCodec::codec ...

  2. Qt的QSettings类和.ini文件读写

    Detailed Description QSettings类提供了持久的跨平台的应用程序设置.用户通常期望应用程序记住它的设置(窗口大小.位置等)所有会话.这些信息通常存储在Windows系统注册表 ...

  3. QT之QSettings 学习

    1.读写配置文件. 代码如下: //创建配置文件 QSettings iniFile(QCoreApplication::applicationDirPath()+"/test.ini&qu ...

  4. 【Qt 】QSettings写ini配置文件

    QSettings写ini配置文件(Qt版本5.2): #include "inidemo.h" #include <QSettings> #include <Q ...

  5. 【Qt】QSettings读写注册表、配置文件【转】

    简述 一般情况下,我们在开发软件过程中,都会缓存一些信息到本地,可以使用轻量级数据库sqlite,也可以操作注册表.读写配置文件. 关于QSettings的使用前面已经介绍过了,比较详细,见“更多参考 ...

  6. QT 使用QSettings读写ini配置文件

    利用Qsettings包一个类 RWIniFile, writeIni方法写文件, readIni方法读文件 rwinifile.h #ifndef RWINIFILE_H #define RWINI ...

  7. 【Qt】QSettings介绍【转】

    简介 QSettings类提供了持久的跨平台应用程序设置. 用户通常期望应用程序记住它的设置(窗口大小.位置等)所有会话.这些信息通常存储在Windows系统注册表,OS X和iOS的属性列表文件中. ...

  8. Qt随笔 - QSettings

    QSettings类提供了持久的跨平台应用程序设置. 嗯,一句话概括QSettings-- 创建 来看一下原型: QSettings::QSettings(const QString &org ...

  9. QT 读写配置文件 .ini

    高端大气上档次!码住 读取配置文件: //根据目录寻找配置文件 QSettings* setting = new QSettings("configs/config.ini", Q ...

随机推荐

  1. HTML5 移动浏览器支持

  2. SpringBoot应用部署[转]

    在开发spring Boot应用的过程中,Spring Boot直接执行public static void main()函数并启动一个内嵌的应用服务器(取决于类路径上的以来是Tomcat还是jett ...

  3. ECharts学习(1)--简单图表的绘制

    1.获取ECharts 官网 下载:http://echarts.baidu.com/download.html 2.在html页面中引入ECharts文件 <!DOCTYPE html> ...

  4. 并查集(union-find)算法

    动态连通性 . 假设程序读入一个整数对p q,如果所有已知的所有整数对都不能说明p和q是相连的,那么将这一整数对写到输出中,如果已知的数据可以说明p和q是相连的,那么程序忽略p q继续读入下一整数对. ...

  5. Mysql主从配置,实现读写分离

    大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢 ...

  6. 教你一招:解决安装或卸载office时 提示错误2503 2502 发生了内部错误

    问题重现: 解决办法:使用软件卸载工具 Uninstall Tool 3.5.1 中文破解版强制删除文件,非常暴力,完美解决. 解决过程一览: 工具下载地址: 软件卸载工具 Uninstall Too ...

  7. 软媒魔方 v6.2.1.0 绿色纯净版及经典版

    软媒魔方,最好用的 Windows 系统增强软件!从最早的优化大师发展为一款系统超级增强套装,自动化.智能化解决各种电脑问题.软媒魔方,全新一代Windows系统增强辅助工具,智能+专业双操控模式,系 ...

  8. 理解javascript this指向

    匿名函数中的this指向window对象 这句话很经典: 每个函数在调用时,其活动对象都会自动获取两个特殊的变量:this和arguments.内部函数在搜索这两个变量时,只会搜到其活动对象为止,因此 ...

  9. SQL 优化tips

    1. 陷阱, 1)几个表进行join,然后过滤 等价于 2)分别过滤为小表后,再join? 并不完全.2)确实比1)效率高,但要注意一些NULL值过滤.否则2)得到的结果比1)多

  10. 利用chorme调试手机网页

    太方便了,很实用的技巧(特意记录一下) 1.pc端安装最新的chrome 2.手机端安装最新的chrome ( Android机 ) 3.USB连接线 4.打开电脑的chrome 在地址栏输入 chr ...