、初始化,判断是否存在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. exec函数族的作用与讲解

    apue看到第八章,对exec函数族的理解一直都很混乱,总觉得不对劲儿,其实不能理解的先暂时跳过,看到后面,再结合实例也就慢慢的理解了. 以下内容转自:http://www.cppblog.com/p ...

  2. ActiveMQ漏洞利用方法总结

    转载来自:http://www.freebuf.com/column/161188.html 1.Console存在默认端口和默认密码/未授权访问(默认密码为admin:admin) ActiveMQ ...

  3. 关于kingoroot这款软件

    弃了饱受诟病的kingroot系列的软件,又出现了一款名为kingoroot的软件. 大约一年之前用过kingoroot的apk版,成功为我的手机root了,而且其行为也并不是那么流氓,所以当时对其很 ...

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

    软工网络15团队作业4--Alpha阶段敏捷冲刺8.0 1.每天举行站立式会议,提供当天站立式会议照片一张. 2.项目每个成员的昨天进展.存在问题.今天安排. 2.1 任务完成安排: 成员 昨日已完成 ...

  5. maven编译不通过:软件包com.sun.org.apache.xml.internal.security.utils.Base64 不存在

     问题:代码中使用了sun公司的第三方私有库,导致编译不通过 maven打包异常:软件包com.sun.org.apache.xml.internal.security.utils.Base64 不存 ...

  6. linux环境下安装qt过程

    linux(虚拟机fedora9)环境下安装qt的过程主要是按照下面几网页上的教程完成的. http://mobile.51cto.com/symbian-272869.htm http://www. ...

  7. ActiveMQ任意文件写入漏洞(版本在5.12.X前CVE-2016-3088)

    ActiveMQ任意文件写入漏洞(版本在5.12.X前CVE-2016-3088) 查看docker的activemq版本命令:$ docker ps | grep activemq927860512 ...

  8. 75.Java异常处理机制throws

    package testDate; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IO ...

  9. 模拟ATM的功能

    import java.io.FileReader; import java.io.FileWriter; import java.io.PrintWriter; import java.util.A ...

  10. oracle goldengate 远程捕获和投递

    很早之前,OGG只支持部署在数据库主机上,这叫本地化部署.而现在OGG支持远端部署,即OGG软件不安装在数据库主机上,而是安装在单独的机器上,负责数据抽取和投递. 这样做的好处: l 易于管理 - 在 ...