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. IIS安装

    引自:http://www.cnblogs.com/Joans/archive/2012/07/16/2593828.html

  2. 【USACO 2.4】Overfencing(bfs最短路)

    H行W列的迷宫,用2*H+1行的字符串表示,每行最多有2*W+1个字符,省略每行后面的空格.迷宫的边界上有且仅有两个出口,求每个点出发到出口的最短路. +-+-+-+-+-+ | | +-+ +-+ ...

  3. perl 模块安装

    You can check if you have them installed in your machine with: > perl -e 1 -M<module> It wi ...

  4. COGS396. [网络流24题]魔术球问题(简化版

    问题描述: 假设有n根柱子,现要按下述规则在这n根柱子中依次放入编号为 1,2,3,4......的球. (1)每次只能在某根柱子的最上面放球. (2)在同一根柱子中,任何2个相邻球的编号之和为完全平 ...

  5. [转载]用 grub2 启动 clover.iso 来启动 OS X

    这个帖子只用来解决特定问题,是楼主这两天辛苦的结晶,如果你遇到了跟我差不多的情形,你就可以尝试这个解决方案. 特定情景:1.不管你的机器支不支持 UEFI ,反正你现在是用传统 BISO + MBR ...

  6. System类和Random类

    System类 成员方法: public static void gc():运行垃圾回收器 public static void exit(int status):退出垃圾回收器 public sta ...

  7. c#.Net:Excel导入/导出之NPOI 2.0简介

      NPOI 2.0+主要由SS, HPSF, DDF, HSSF, XWPF, XSSF, OpenXml4Net, OpenXmlFormats组成,具体列表如下: 资料来自:百度百科   Ass ...

  8. 深入理解javascript原型和闭包(1)——一切都是对象

    “一切都是对象”这句话的重点在于如何去理解“对象”这个概念. ——当然,也不是所有的都是对象,值类型就不是对象. 首先咱们还是先看看javascript中一个常用的函数——typeof().typeo ...

  9. 精选9个值得学习的 HTML5 效果【附源码】

    这里精选了一组很酷的 HTML5 效果.HTML5 是现 Web 开发领域的热点, 拥有很多让人期待已久的新特性,特别是在移动端,Web 开发人员可以借助 HTML5 强大功能轻松制作各种交互性强.效 ...

  10. VBA笔记(二)——基础语法

    数据类型 VBA提供了15种标准数据类型,具体见下表: 变量 Sub 变量学习() 'Dim 变量名 As 数据类型 Dim str1 As String '声明定长的String变量 '使用变量类型 ...