、初始化,判断是否存在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;
}