使用QSetting类,有两种实现方式
(1)通过键值对
(2)通过组
1、添加依赖文件
#include <QDebug>
#include <QSettings>
2、头文件
bool WriteIniFile(const QString fileName="");
bool ReadIniFile(const QString fileName="");
2、源文件
bool Widget::WriteIniFile(const QString fileName/*=""*/)
{QSettings * ini = new QSettings("config.ini", QSettings::IniFormat);//构造QSettings对象,访问ini文件//方式1:键值对ini->setValue("server/ip", "127.0.0.1");ini->setValue("server/port", "7999");ini->setValue("server/clientNumber", "8");ini->setValue("server2/ip", "192.168.0.1");ini->setValue("server2/port", "8000");ini->setValue("server2/clientNumber", "10");//方式2:组ini->beginGroup("client");ini->setValue("connectIp","127.0.0.1");ini->setValue("connectPort","7999");ini->endGroup();ini->beginGroup("client2");ini->setValue("connectIp2","192.168.0.1");ini->setValue("connectPort2","8000");ini->endGroup();delete ini;return true;
}
bool Widget::ReadIniFile(const QString fileName/*=""*/)
{QSettings * ini = new QSettings("config.ini", QSettings::IniFormat);//方式1:键值对QString serverIp = ini->value("server/ip").toString();int serverPort = ini->value("server/port").toInt();int clientNumber = ini->value("server/clientNumber").toInt();qDebug().nospace() << "server/serverIp=" << serverIp;qDebug().nospace() << "server/serverPort=" << serverPort;qDebug().nospace() << "server/clientNumber=" << clientNumber;QString server2Ip = ini->value("server2/ip").toString();int server2Port = ini->value("server2/port").toInt();int client2Number = ini->value("server2/clientNumber").toInt();qDebug().nospace() << "server2/serverIp=" << server2Ip;qDebug().nospace() << "server2/serverPort=" << server2Port;qDebug().nospace() << "server2/clientNumber=" << client2Number;//方式2:组//注意:需要从group中读出,否则将读不出来ini->beginGroup("client");QString connectIp = ini->value("connectIp", "").toString();int connectPort = ini->value("connectPort", -1).toInt();ini->endGroup();qDebug().nospace() << "client: ";qDebug().nospace() << "connectIp=" << connectIp;qDebug().nospace() << "connectPort=" << connectPort;ini->beginGroup("client2");QString connect2Ip = ini->value("connectIp", "").toString();int connect2Port = ini->value("connectPort", -1).toInt();ini->endGroup();qDebug().nospace() << "client2: ";qDebug().nospace() << "connectIp=" << connect2Ip;qDebug().nospace() << "connectPort=" << connect2Port;delete ini;return true;
}