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 ...
随机推荐
- MySQL中 order by 与 limit 的执行顺序以及使用实例
在 MySQL 执行查询的时候,我们可能既要对结果集进行排序又要限制行数,那么此时 order by 与 limit 的执行顺序是怎么样的呢? order by与limit的执行顺序是:先执行orde ...
- java 解析webservice 中的soapheader
//从MessageContet中获取头域中的值 public HeaderBean getBeanFromRequest(org.apache.axis2.context.MessageContex ...
- CentOS — MySQL备份 Shell 脚本
原文链接:http://www.cnblogs.com/bruceleeliya/archive/2012/05/04/2482733.html 新建一个 Shell 脚本文件 vi /home/wo ...
- js - 关于this、new、原型
1.this误区 # 第三方学习 http://www.cnblogs.com/wangfupeng1988/p/3988422.html - this不是函数自身的引用,this实际上是在函数被调用 ...
- Powerdesign使用小技巧(转载)
1.做CDM模型的时候,因为开始定义ITEM的时候,没有注意把NAME和CODE全定义成一样的.结果后面想改的时候比较麻烦,一修改NAME结果CODE也变了.后来找到两个方法可以解决这个问题.A.Po ...
- Java并发编程(二):JAVA内存模型与同步规则
一.Java内存模型(JMM) 它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式.一个线程如何和何时能看到其他线程共享变量的值,以及在 ...
- Centos下运行定时任务Crontab命令介绍
1.Cron的启动与关闭 因为Cron是Linux的内置服务.能够用下面的方法启动.关闭这个服务: /sbin/service crond start //启动服务 /sbin/s ...
- 【大话QT之十三】系统软件自己主动部署实现方案
本篇文章是对[大话QT之十二]基于CTK Plugin Framework的插件版本号动态升级文章的补充,在上篇文章中我们阐述的重点是新版本号的插件已经下载到plugins文件夹后应该怎样更新本地正在 ...
- LFCS 系列第八讲:管理用户和用户组、文件权限和属性以及启用账户 sudo 访问权限
由于 Linux 是一个多用户的操作系统(允许多个用户通过不同主机或者终端访问一个独立系统),因此你需要知道如何才能有效地管理用户:如何添加.编辑.禁用和删除用户账户,并赋予他们足以完成自身任务的必要 ...
- ruby之各种概念
一.引言 刚开始接触ruby,遇到问题于是上网查资料,但是有时候却又看不懂,这很大一部分原因是我不知道一些关于ruby的概念名词是什么意思,所以看了别人的回答也理解不了. 二.各种名词 ruby:这个 ...