Qt 配置文件QSettings读取以及中文问题
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读取以及中文问题的更多相关文章
- Qt 配置文件QSettings
QString appDirPath = QCoreApplication::applicationDirPath(); QSettings* configIniRead = new QSetting ...
- QT之QSettings 学习
1.读写配置文件. 代码如下: //创建配置文件 QSettings iniFile(QCoreApplication::applicationDirPath()+"/test.ini&qu ...
- Qt 中一些常用类中文说明
Qt 中一些常用类中文说明是本文讲述的内容,这篇文章主要是介绍Qt 当中经常使用的类,采取的是使用字母索引的方式,下面的类是被经常使用的. QDataStream 为QIODevice提供了一串的二进 ...
- Qt的QSettings类和.ini文件读写
Detailed Description QSettings类提供了持久的跨平台的应用程序设置.用户通常期望应用程序记住它的设置(窗口大小.位置等)所有会话.这些信息通常存储在Windows系统注册表 ...
- properties配置文件的读取和写入
/** * 类名:PropertiesUtil * 功能:提供对properties配置文件的读取和写入 * @author ChengTao */package com.xy.xyd.rest.bi ...
- springcloud的配置文件的读取顺序
SpringBoot默认支持properties和YAML两种格式的配置文件.前者格式简单,但是只支持键值对.如果需要表达列表,最好使用YAML格式.SpringBoot支持自动加载约定名称的配置文件 ...
- Springboot 之 自定义配置文件及读取配置文件
本文章来自[知识林] 读取核心配置文件 核心配置文件是指在resources根目录下的application.properties或application.yml配置文件,读取这两个配置文件的方法有两 ...
- Springboot 之 自定义配置文件及读取配置文件注意:配置文件中的字符串不要有下划线 .配置中 key不能带下划线,value可以(下划线的坑,坑了我两天..特此纪念)
注意:配置文件中的字符串不要有下划线 .配置中 key不能带下划线,value可以 错误的.不能读取的例子: mySet .ABAP_AS_POOLED = ABAP_AS_WITH_P ...
- Feign从配置文件中读取url
Feign的url和name都是可配置的,就是从配置文件中读取的属性值,然后用占位符引用就可以了: ${rpc.url} @FeignClient(name = "me", url ...
随机推荐
- ECMAScript6 | 新特性(部分)
新特性概览 参考文章:http://www.cnblogs.com/Wayou/p/es6_new_features.html 这位前辈写的很好,建议深入学习 ———————————————————— ...
- ubuntu14.04使用root用户登录桌面,ubuntu14.04root 转
ubuntu安装好之后,默认是不能用root用户登录桌面的,只能使用普通用户或者访客登录.怎样开启root用户登录桌面呢? 先用普通用户登录,然后切换到root用户,然后执行如下命令: vi /usr ...
- SugarCRM如何检查控制器权限?
SugarController定义了一个实例变量$hasAccess,布尔值,默认为true.该实例变量指示使用者是否有执行摸个action的权限: class SugarController{ /* ...
- SQL变量与全局变量
变量 1.局部变量的声明(一个@) declare @n int --声明变量关键字为declare 然后@加变量名 后面是变量类型 declare @s varchar(36) 2.局部变量的赋 ...
- 把一个base64编码的图片绘制到canvas (canvas的图片在转成dataurl)
把一个base64编码的图片绘制到canvas 需要引入jquery. <canvas id="myCanvas" width="800" height= ...
- 实验c语言不同类型的指针互用(不推荐只是学习用)
#include <stdio.h> int main(int argc, char *argv[]) { printf("Hello, world\n"); ]; i ...
- c++ 返回对象的引用要小心
除非能保证返回对象的生命周期足够长. 一定不要返回临时对象的引用.
- HashMap实现原理(转)
来自:http://www.cnblogs.com/xwdreamer/archive/2012/05/14/2499339.html 0.参考文献: hash算法 (hashmap 实现原理) Ja ...
- 点滴积累【C#】---Highcharts图形统计
效果: 思路: 后台获取数据!然后拼接为前台所要求的格式,再将拼接好的StringBuilder给了hidden控件! 然后前台获取JQuery获取Hidden的值,最后将值赋给图形! 代码: [前台 ...
- HTTP 用户认证
HTTP 常见的用户认证可以分为下面三种: 基于IP,子网的访问控制(ACL) 基本用户验证(Basic Authentication) 消息摘要式身份验证(Digest Authentication ...