、初始化,判断是否存在ini文件,如果不存在则新建
void iniConfig()
{
QFileInfo fileInfo(".\\config.ini");
if (!fileInfo.isFile())
{
QSettings iniFile(".\\config.ini", QSettings::IniFormat);//参数1,代表新建ini文件的位置的绝对路径; 参数2,将设置存储在ini文件中
iniFile.setIniCodec(QTextCodec::codecForName("GB2312")); //解决读取value值的中文乱码问题
for (int i = ; i < ; i++)//8个组
{
QString tempStr = QString("car_%1").arg(i+);
iniFile.beginGroup(tempStr);
iniFile.setValue("net_port", ); //端口
iniFile.setValue("net_server_ip", "192.168.40.11"); //服务器ip
iniFile.setValue("net_local_ip", "192.168.40.10"); //本地ip
iniFile.setValue("net_gwaddr", "192.168.40.1"); //网关
iniFile.setValue("net_maskaddr", "255.255.255.0"); //子网掩码
iniFile.endGroup();
}
}
}
、读取值
void getConfig(int carNUm)
{
QSettings iniFile(".\\config.ini", QSettings::IniFormat);//参数1,代表新建ini文件的位置的绝对路径; 参数2,将设置存储在ini文件中
iniFile.setIniCodec(QTextCodec::codecForName("GB2312"));
QString tempStr = QString("car_%1").arg(carNUm);
iniFile.beginGroup(tempStr);
ui.lineEdit_31->setText(iniFile.value("net_port").toString());//端口
ui.lineEdit_83->setText(iniFile.value("net_server_ip").toString());
ui.lineEdit_32->setText(iniFile.value("net_local_ip").toString());
ui.lineEdit_33->setText(iniFile.value("net_gwaddr").toString());
ui.lineEdit_34->setText(iniFile.value("net_maskaddr").toString());
iniFile.endGroup();
}
、设置值
QSettings iniFile(".\\config.ini", QSettings::IniFormat);//参数1,代表新建ini文件的位置的绝对路径; 参数2,将设置存储在ini文件中
iniFile.setIniCodec(QTextCodec::codecForName("GB2312")); //解决读取value值的中文乱码问题
QString tempStr = QString("car_%1").arg(ui.comboBox_3->currentIndex() + );
iniFile.beginGroup(tempStr);
iniFile.setValue("net_port", ui.lineEdit_31->text()); //端口
iniFile.setValue("net_server_ip", ui.lineEdit_83->text()); //服务器ip
iniFile.setValue("net_local_ip", ui.lineEdit_32->text()); //本地ip
iniFile.setValue("net_gwaddr", ui.lineEdit_33->text()); //网关
iniFile.setValue("net_maskaddr", ui.lineEdit_34->text()); //子网掩码
iniFile.endGroup();

代码:单例类

class PacketConfig
{
private:
static PacketConfig *instance;
PacketConfig()=default;
~PacketConfig()
{
delete instance;
delete sets;
}
public:
static PacketConfig* getInstace();static QSettings* sets;
}; PacketConfig* PacketConfig::instance = nullptr;
QSettings* PacketConfig::sets = nullptr;
PacketConfig* PacketConfig::getInstace()
{
if(instance == nullptr)
{
instance = new PacketConfig;
sets = new QSettings(QCoreApplication::applicationDirPath()+"./cfg.ini",QSettings::IniFormat);
}
return instance;
}

QSetting的更多相关文章

  1. 【转载】PyQt QSetting保存设置

    转载地址: http://blog.sina.com.cn/s/blog_4b5039210100h3zb.html 用户对应用程序经常有这样的要求:要求它能记住它的settings,比如窗口大小,位 ...

  2. QSetting的值不能保存。

    最近在使用QSetting的时候,setting的值死活保存不下来,后来添加了如何设置后,settting的可以获取到. QCoreApplication::setOrganizationName(& ...

  3. Qt只QSetting

    The QSettings class provides persistent platform-independent application settings. 提供跨平台的持久性设置. QSet ...

  4. QSetting 说明和简单使用

    今天看到服务端代码有一个QSetting.一开始以为是STL模板中的Set(弄到QT中改了个名字而已).仔细一看吓一跳,不是STL模板.是qt特有的一个类. 用来保存或读取一些配置信息用的.看了后,感 ...

  5. QT 使用QSetting读取配置文件中的中文乱码解决方案

    windows下方案: 首先需要将ini文件改成UTF-8或GB2312编码格式,可以通过notepad++工具实现.然后在配置项中填入中文,如下: 接着在程序中使用 QSettings settin ...

  6. QSetting介绍

    简介 QSettings类提供了持久的跨平台应用程序设置. 用户通常期望应用程序记住它的设置(窗口大小.位置等)所有会话.这些信息通常存储在Windows系统注册表,OS X和iOS的属性列表文件中. ...

  7. 【转载】Pyqt QSplitter分割窗口

    转载来自: http://blog.sina.com.cn/s/blog_4b5039210100h3ih.html 分割窗口在应用程序中经常用到,它可以灵活分布窗口布局,经常用于类似文件资源管理器的 ...

  8. Qt学习1

    Action 的用法 首先在头文件的 private 中加: 1 2 3 QMenu *fileMenu; QMenu *editMenu; QMenu *helpMenu; 1 2 3 4 5 6 ...

  9. Qt配置信息设置(QSettings在不同平台下的使用路径)

    在Windows操作系统中,大多把配置文件信息写在注册表当中,或写在*.ini文件中,对于这两种操作都有相应的Windows API函数,在以前的文章中都提及过,这里就不多说了~ 在Qt中,提供了一个 ...

随机推荐

  1. Spring+SpringMVC+MyBatis整合配置

    前端控制器 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version=& ...

  2. notepad使用列选

    列选有两种方法: 1.按住ALT + 鼠标从某点按住开始向下或向上拖动. 2.按住ALT+SHIFT+上下方向键. 列编辑: 1.ALT+C 2.插入相同文本还是自增数字

  3. SpringBoot+SpringCloud实现登录用户信息在微服务之间的传递

    实现思路: 1:准备一个ThreadLocal变量,供线程之间共享. 2:每个微服务对所有过来的Feign调用进行过滤,然后从请求头中获取User用户信息,并存在ThreadLocal变量中. 3:每 ...

  4. [ Windows BAT Script ] 删除某个目录下的所有某类文件

    删除某个目录下的所有某类文件 @echo off for /R %%s in (*.txt) do ( echo %%s del %%s ) pause @echo on

  5. 软工网络15团队作业4——Alpha阶段敏捷冲刺5.0

    1.每天举行站立式会议,提供当天站立式会议照片一张. 2.项目每个成员的昨天进展.存在问题.今天安排. 成员 昨天已完成 今天计划完成 郭炜埕 完善新建话题界面 实现前端各界面的跳转连接 郑晓丽 进行 ...

  6. uvm设计分析——tlm

    tlm模块,用来在不同模块之间实现实时通信,主要基于两个定义在通信双方的port类来实现. 两个port之间,通过connect函数,来拿到双方的class指针,进而调用对方的function. 但是 ...

  7. [openjudge-搜索]深度优先搜索之马走日

    题目描述 描述 马在中国象棋以日字形规则移动.请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点. 输入 第一行 ...

  8. importlib

    Python提供了importlib包作为标准库的一部分.目的就是提供Python中import语句的实现(以及__import__函数).另外,importlib允许程序员创建他们自定义的对象,可用 ...

  9. IO多路复用 IO异步

    一.概念说明 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的环境给出的答案是不同的.所以先限定一下本文的环境.本文讨论的背景是Linux环境下的network I ...

  10. over(partition by)开窗函数的使用

    开窗函数是分析函数中的一种,开窗函数与聚合函数的区别是:开窗函数是用于计算基于组的某种聚合值且每个的组的聚合计算结果可以有多行,而聚合函数每个组的聚合计算结果只有一个.使用开窗函数可以在没有group ...