1. QSettings settings("xxxx.ini",QSettings::IniFormat);
    settings.setIniCodec(QTextCodec::codecForName("GB2312")); //在此添加设置,即可读写ini文件中的中文setup.ini文件内容:
  2.  
  3. [Rooms]
  4. \RoomName=Room1
  5. \PC\\PCName=PC1
  6. \PC\\IP=192.168.1.121
  7. \PC\\App=C:\\chess.exe
  8. \PC\\MACAddress=A0-2C--9E--FB
  9. \PC\\PCName=PC2
  10. \PC\\IP=192.168.1.152
  11. \PC\\App=D:\\chess.exe
  12. \PC\\MACAddress=-D5---1E-
  13. \PC\\PCName=PC3
  14. \PC\\IP=192.168.1.153
  15. \PC\\App=D:\\chess.exe
  16. \PC\\MACAddress=-----
  17. \PC\size=
  18. \RoomName=Room2
  19. \PC\\PCName=PC1
  20. \PC\\IP=192.168.1.121
  21. \PC\\App=C:\\chess.exe
  22. \PC\\MACAddress=-----
  23. \PC\\PCName=PC2
  24. \PC\\IP=192.168.1.152
  25. \PC\\App=D:\\chess.exe
  26. \PC\\MACAddress=-D5---1E-
  27. \PC\\PCName=PC3
  28. \PC\\IP=192.168.1.153
  29. \PC\\App=D:\\chess.exe
  30. \PC\\MACAddress=-----
  31. \PC\\PCName=PC4
  32. \PC\\IP=192.168.1.154
  33. \PC\\App=D:\\chess.exe
  34. \PC\\MACAddress=-----
  35. \PC\size=
  36. \RoomName=Room5
  37. \PC\\PCName=PC1
  38. \PC\\IP=192.168.1.121
  39. \PC\\App=C:\\chess.exe|D:\\A.exe|D:\\B.exe|D:\\C.exe
  40. \PC\\MACAddress=-----
  41. \PC\\PCName=PC2
  42. \PC\\IP=192.168.1.152
  43. \PC\\App=D:\\chess.exe|D:\\A.exe|D:\\B.exe|D:\\C.exe
  44. \PC\\MACAddress=-D5---1E-
  45. \PC\\PCName=PC3
  46. \PC\\IP=192.168.1.153
  47. \PC\\App=D:\\chess.exe|D:\\A.exe|D:\\B.exe|D:\\C.exe
  48. \PC\\MACAddress=-----
  49. \PC\\PCName=PC4
  50. \PC\\IP=192.168.1.154
  51. \PC\\App=D:\\chess.exe|D:\\A.exe|D:\\B.exe|D:\\C.exe
  52. \PC\\MACAddress=-----
  53. \PC\size=
  54. size=
  55. // 读取配置文件代码
  56. QSettings* configIniRead = new QSettings(
  57. QCoreApplication::applicationDirPath()+"/setup.ini", QSettings::IniFormat);
  58. int roomCnt = configIniRead->beginReadArray("rooms");
  59. for (int i = ; i < roomCnt; ++i) {
  60. configIniRead->setArrayIndex(i);
  61. QString roomName = configIniRead->value("RoomName").toString();
  62. int pcCnt = configIniRead->beginReadArray("PC");
  63. for (int j = ; j < pcCnt; ++j) {
  64. configIniRead->setArrayIndex(j);
  65. QString name = configIniRead->value("PCName").toString();
  66. QString ip = configIniRead->value("IP").toString();
  67. QString app = configIniRead->value("App").toString();
  68. QString mac = configIniRead->value("MacAddress").toString();
  69. //qDebug()<<app;
  70. QStringList list;
  71. list<<name<<ip<<app<<mac;
  72. rooms[roomName].push_back(list);
  73. }
  74. configIniRead->endArray();
  75. }
  76. configIniRead->endArray();
  1. setup.ini内容:
  2. [General]
  3. isServer=true
  4.  
  5. 读取代码:
  6. QString appDirPath = QCoreApplication::applicationDirPath();
  7. QSettings* configIniRead = new QSettings(appDirPath+"/setup.ini", QSettings::IniFormat);
  8. bool isServer = false;
  9. if( configIniRead->allKeys().size() > )
  10. {
  11. isServer = configIniRead->value("isServer").toBool();
  12. //httpServerPort = configIniRead->value("httpServerPort").toInt();
  13. qDebug() <<isServer<< "use setup.ini setting." ;
  14. }
  15. else
  16. {
  17. qDebug() << "have no setup.ini , use default setting ." ;
  18. }
  1. QString appDirPath = QCoreApplication::applicationDirPath();
  2. QSettings* configIniRead = new QSettings(appDirPath+"/setup.ini", QSettings::IniFormat);
  3.  
  4. // test
  5. /*
  6. configIniRead->beginGroup("mainwindow");
  7. configIniRead->setValue("size", 122);
  8. configIniRead->setValue("fullScreen", 1);
  9. configIniRead->endGroup();
  10. configIniRead->beginGroup("outputpanel");
  11. configIniRead->setValue("visible", 1);
  12. configIniRead->endGroup();
  13. settings.setValue("fridge/color", QColor(Qt::white));
  14. settings.setValue("fridge/size", QSize(32, 96));
  15. settings.setValue("sofa", true);
  16. settings.setValue("tv", false);
  17. QStringList keys = settings.allKeys();
  18. // keys: ["fridge/color", "fridge/size", "sofa", "tv"]
  19. QStringList keys = settings.childKeys();
  20. // keys: ["sofa", "tv"]
  21. QStringList groups = settings.childGroups();
  22. // groups: ["fridge"]
  23. configIniRead->beginWriteArray("logins");
  24. for (int i = 0; i < 3; ++i) {
  25. configIniRead->setArrayIndex(i);
  26. configIniRead->setValue("userName", i);
  27. configIniRead->setValue("password", "0a");
  28. }
  29. configIniRead->endArray();
  30. */

Qt 配置文件QSettings读取以及中文问题的更多相关文章

  1. Qt 配置文件QSettings

    QString appDirPath = QCoreApplication::applicationDirPath(); QSettings* configIniRead = new QSetting ...

  2. QT之QSettings 学习

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

  3. Qt 中一些常用类中文说明

    Qt 中一些常用类中文说明是本文讲述的内容,这篇文章主要是介绍Qt 当中经常使用的类,采取的是使用字母索引的方式,下面的类是被经常使用的. QDataStream 为QIODevice提供了一串的二进 ...

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

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

  5. properties配置文件的读取和写入

    /** * 类名:PropertiesUtil * 功能:提供对properties配置文件的读取和写入 * @author ChengTao */package com.xy.xyd.rest.bi ...

  6. springcloud的配置文件的读取顺序

    SpringBoot默认支持properties和YAML两种格式的配置文件.前者格式简单,但是只支持键值对.如果需要表达列表,最好使用YAML格式.SpringBoot支持自动加载约定名称的配置文件 ...

  7. Springboot 之 自定义配置文件及读取配置文件

    本文章来自[知识林] 读取核心配置文件 核心配置文件是指在resources根目录下的application.properties或application.yml配置文件,读取这两个配置文件的方法有两 ...

  8. Springboot 之 自定义配置文件及读取配置文件注意:配置文件中的字符串不要有下划线 .配置中 key不能带下划线,value可以(下划线的坑,坑了我两天..特此纪念)

    注意:配置文件中的字符串不要有下划线 .配置中  key不能带下划线,value可以 错误的.不能读取的例子: mySet .ABAP_AS_POOLED      =  ABAP_AS_WITH_P ...

  9. Feign从配置文件中读取url

    Feign的url和name都是可配置的,就是从配置文件中读取的属性值,然后用占位符引用就可以了: ${rpc.url} @FeignClient(name = "me", url ...

随机推荐

  1. MySQL中 order by 与 limit 的执行顺序以及使用实例

    在 MySQL 执行查询的时候,我们可能既要对结果集进行排序又要限制行数,那么此时 order by 与 limit 的执行顺序是怎么样的呢? order by与limit的执行顺序是:先执行orde ...

  2. java 解析webservice 中的soapheader

    //从MessageContet中获取头域中的值 public HeaderBean getBeanFromRequest(org.apache.axis2.context.MessageContex ...

  3. CentOS — MySQL备份 Shell 脚本

    原文链接:http://www.cnblogs.com/bruceleeliya/archive/2012/05/04/2482733.html 新建一个 Shell 脚本文件 vi /home/wo ...

  4. js - 关于this、new、原型

    1.this误区 # 第三方学习 http://www.cnblogs.com/wangfupeng1988/p/3988422.html - this不是函数自身的引用,this实际上是在函数被调用 ...

  5. Powerdesign使用小技巧(转载)

    1.做CDM模型的时候,因为开始定义ITEM的时候,没有注意把NAME和CODE全定义成一样的.结果后面想改的时候比较麻烦,一修改NAME结果CODE也变了.后来找到两个方法可以解决这个问题.A.Po ...

  6. Java并发编程(二):JAVA内存模型与同步规则

    一.Java内存模型(JMM) 它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式.一个线程如何和何时能看到其他线程共享变量的值,以及在 ...

  7. Centos下运行定时任务Crontab命令介绍

    1.Cron的启动与关闭 因为Cron是Linux的内置服务.能够用下面的方法启动.关闭这个服务: /sbin/service crond start           //启动服务 /sbin/s ...

  8. 【大话QT之十三】系统软件自己主动部署实现方案

    本篇文章是对[大话QT之十二]基于CTK Plugin Framework的插件版本号动态升级文章的补充,在上篇文章中我们阐述的重点是新版本号的插件已经下载到plugins文件夹后应该怎样更新本地正在 ...

  9. LFCS 系列第八讲:管理用户和用户组、文件权限和属性以及启用账户 sudo 访问权限

    由于 Linux 是一个多用户的操作系统(允许多个用户通过不同主机或者终端访问一个独立系统),因此你需要知道如何才能有效地管理用户:如何添加.编辑.禁用和删除用户账户,并赋予他们足以完成自身任务的必要 ...

  10. ruby之各种概念

    一.引言 刚开始接触ruby,遇到问题于是上网查资料,但是有时候却又看不懂,这很大一部分原因是我不知道一些关于ruby的概念名词是什么意思,所以看了别人的回答也理解不了. 二.各种名词 ruby:这个 ...