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中,提供了一个 ...
随机推荐
- tp5 auth权限设置
案例:把所需要的auth类放在一个公共的地方引用,我这里就只是放在了与application同级的extend里面的org所以我在公共控制器里面实例为use \org\Auth; 然后我再公共控制器里 ...
- 使用promisify解决fs的回调地狱问题
- Django配置xadmin后台模板之坑(一)
环境: Python3.6 + Django2.0 + xadmin2.0 一.安装 1.首先安装就会有一个坑,很多教程的安装是直接在虚拟环境下使用 pip install xadmin 或者 pip ...
- LeetCode13.罗马数字转整数
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并 ...
- C# 如何批量修改集合元素的属性值?
我们往往会遇到要批量修改集合中元素的值,最笨的办法就是foreach循环,但本文介绍几种优雅的方法. 首先,我们准备好元素类和初始集合: 下面就是几种方法,目前并没有对性能做进一步的测试,有兴趣的童鞋 ...
- idea软件上设置爱彼迎字体
- UVa-1025城市里的间谍 A Spy in the Metro
原题 城市里的间谍 分析 动态规划,dp[i][j]表示你在时刻i,车站j,最少还要等待的时间. 边界条件d[T][n]=0 已经到达,其他d[T][i]=inf不可达. 在一个站点时,有以下三种决策 ...
- uvm设计分析——tlm
tlm模块,用来在不同模块之间实现实时通信,主要基于两个定义在通信双方的port类来实现. 两个port之间,通过connect函数,来拿到双方的class指针,进而调用对方的function. 但是 ...
- GitHub 代码上传
方法一 登录GitHub后,点击下面的图 New responsitory 按钮 或者点击绿色按钮 New repository,新建一个新建一个远程仓库(remote repository),点击后 ...
- webservice 生成客户端代码
使用 jdk 自带工具 wsimport wsimport -keep http://webservice/url?wsdl