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. springmvc请求接收参数的几种方法

    一.通过@PathVariable获取路径中的参数 @RequestMapping(value="user/{id}/{name}",method=RequestMethod.GE ...

  2. java-map和object装换

    /** * 使用org.apache.commons.beanutils进行转换 */ class A { public static Object mapToObject(Map<String ...

  3. C#-WinForm-发送邮件

    进入邮箱→打开设置→变为启用状态 发送前准备:发件人.发件人密码.收件人.标题.内容 在<发送>按钮中设置事件 一.引用 System.Net; 和 System.Net.Mail; 命名 ...

  4. 上传本地代码到github

    第一步:建立git仓库 cd到你的本地项目根目录下,执行git命令git init第二步:将项目的所有文件添加到仓库中git add .如果想添加某个特定的文件,只需把.换成特定的文件名即可第三步:将 ...

  5. Leetcode 40. Combination Sum II

    Given a collection of candidate numbers (C) and a target number (T), find all unique combinations in ...

  6. 为自己的爬虫更换代理和HTML头部

    import requestsimport reimport randomimport time class download(): def __init__(self): self.iplist = ...

  7. python变量

    1. 系统变量 (1) '__doc__' 文件注释,在py中代码最上方""" """里面一般写注释,系统会把文件注释自动存放在'__doc ...

  8. SQL 事务回滚

    事务(Transaction)是并发控制的单位,是用户定义的一个操作序列.这些操作要么都做,要么都不做,是一个不可分割的工作单位.通过事务,SQL Server能将逻辑相关的一组操作绑定在一起,以便服 ...

  9. PHP图片上传类

    前言 在php开发中,必不可少要用到文件上传,整理封装了一个图片上传的类也很有必要. 图片上传的流程图 一.控制器调用 public function upload_file() { if (IS_P ...

  10. Java---类加载机制,构造方法,静态变量,(静态)代码块,父类,变量加载顺序

    直接上代码: 代码1: public class ConstroctTest { private static ConstroctTest test = new ConstroctTest(); // ...