QSetting
、初始化,判断是否存在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的更多相关文章
- 【转载】PyQt QSetting保存设置
转载地址: http://blog.sina.com.cn/s/blog_4b5039210100h3zb.html 用户对应用程序经常有这样的要求:要求它能记住它的settings,比如窗口大小,位 ...
- QSetting的值不能保存。
最近在使用QSetting的时候,setting的值死活保存不下来,后来添加了如何设置后,settting的可以获取到. QCoreApplication::setOrganizationName(& ...
- Qt只QSetting
The QSettings class provides persistent platform-independent application settings. 提供跨平台的持久性设置. QSet ...
- QSetting 说明和简单使用
今天看到服务端代码有一个QSetting.一开始以为是STL模板中的Set(弄到QT中改了个名字而已).仔细一看吓一跳,不是STL模板.是qt特有的一个类. 用来保存或读取一些配置信息用的.看了后,感 ...
- QT 使用QSetting读取配置文件中的中文乱码解决方案
windows下方案: 首先需要将ini文件改成UTF-8或GB2312编码格式,可以通过notepad++工具实现.然后在配置项中填入中文,如下: 接着在程序中使用 QSettings settin ...
- QSetting介绍
简介 QSettings类提供了持久的跨平台应用程序设置. 用户通常期望应用程序记住它的设置(窗口大小.位置等)所有会话.这些信息通常存储在Windows系统注册表,OS X和iOS的属性列表文件中. ...
- 【转载】Pyqt QSplitter分割窗口
转载来自: http://blog.sina.com.cn/s/blog_4b5039210100h3ih.html 分割窗口在应用程序中经常用到,它可以灵活分布窗口布局,经常用于类似文件资源管理器的 ...
- Qt学习1
Action 的用法 首先在头文件的 private 中加: 1 2 3 QMenu *fileMenu; QMenu *editMenu; QMenu *helpMenu; 1 2 3 4 5 6 ...
- Qt配置信息设置(QSettings在不同平台下的使用路径)
在Windows操作系统中,大多把配置文件信息写在注册表当中,或写在*.ini文件中,对于这两种操作都有相应的Windows API函数,在以前的文章中都提及过,这里就不多说了~ 在Qt中,提供了一个 ...
随机推荐
- lnmp----------lnmp集成环境使用lnmp安装包安装lnmp集成环境的步骤
1.先看下screen -S lnmp 命令是否存在,不存在则安装.这个是个什么东东呢?百度一下( GNU Screen是一款由GNU计划开发的用于命令行终端切换的自由软件.用户可以通过该软件同时连接 ...
- 学习笔记<1>技术体系结构
Android的系统架构采用了分层架构的思想,如上图所示.从上层到底层共包括四层,分别是 1.应用程序程序层 2.应用框架层 3.系统库和Android运行时 4.Linux内核. 每 ...
- VMWare虚拟机 window文件传递
无论是将虚拟机的文件传到window上或者是将window上文件传到虚拟机上: 都可以选中文件,然后拖动文件到另一个系统上 提前:虚拟机安装了VMWARE Tools 1)window上文件拖到虚拟机 ...
- jQuery属性--html([val|fn])、text([val|fn])和val([val|fn|arr])
html([val|fn]) 概述 取得第一个匹配元素的html内容,这个函数不能用于XML文档.但可以用于XHTML文档. 在一个 HTML 文档中, 我们可以使用 .html() 方法来获取任意一 ...
- Tornado安装
Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快.得利于其 非阻塞的方式和对 epoll 的运用,Tornado ...
- 解释器模式 Interpreter
代码例子 参考 1.解释器模式定义 给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子. 说明:解释器模式设计到文法规则和抽象语法树. 2.解释器模式的结构 ...
- timestamp与timedelta,管理信息系统概念与基础
1.将字符串‘2017年10月9日星期一9时10分0秒 UTC+8:00’转换为timestamp. 2.100天前是几号? 今年还有多少天? #timestamp与timedelta from ...
- Android Auto开发初探
一.Android Auto 概述 二.Android Auto 使用方法 四.Android Auto应用开发 五.Android Auto开发总结 一.Android Auto 概述 最近物联网是 ...
- subwoofer
外文名:subwoofer 中文名:重低音音箱 俗 称:低音炮 归 类:音乐器材别 称:重低音音箱 低音炮是大家的一个俗称或者简称,严格讲应该是:重低音音箱.重低音其实是电子音乐里, ...
- qt中QtreeWidget与QstackWidget关联的问题
过程:要做一个图书管理系统,主界面是类似于这样的 左边是类似于树形空间的东西,当点击左边的左边的窗体的时候,右边的窗口也会跟着切换. 为了实现这个功能,必须要有两个控件,QTreeWidget和Qst ...