QT 读写配置文件(*.INI)
核心类库: 参见>>QSettings
创建一个配置参数类模型,如 MyConfig
文件:MyConfig.h
#include <QString> class MyConfig { public: MyConfig(); void LoadFile(); // 从配置文件中读取 void SaveFile(); // 向文件中写入 double P_double1 = 1.23; double P_double2 = 3.1415; double P_double3 = 10.0; int P_int1 = 456; int P_int2 = 123; QString P_string1 = "abc"; QString P_string2 = "efg"; };
文件代码:MyConfig.cpp
#include "myconfig.h" #include <QSettings> #include <iostream> #include <fstream> MyConfig::MyConfig()
{ } void MyConfig::LoadFile() { std::string filepath = "MyConfig.ini"; // 先判断文件是否存在 std::ifstream file(filepath); if(file.good() == false) { this->SaveFile(); return; } // 读取文件 QSettings settings(QString::fromStdString(filepath), QSettings::IniFormat); settings.beginGroup("GroupName1"); this->P_double1 = settings.value("P_double1").toDouble(); this->P_double2 = settings.value("P_double2").toDouble(); this->P_double3 = settings.value("P_double3").toDouble(); settings.endGroup(); settings.beginGroup("GroupName2"); this->P_int1 = settings.value("P_int1").toInt(); this->P_int2 = settings.value("P_int2").toInt(); settings.endGroup(); settings.beginGroup("GroupName3"); this->P_string1 = settings.value("P_string1").toString(); this->P_string2 = settings.value("P_string2").toString(); settings.endGroup(); } void MyConfig::SaveFile() { QSettings settings("MyConfig.ini", QSettings::IniFormat); settings.beginGroup("GroupName1"); settings.setValue("P_double1", this->P_double1); settings.setValue("P_double2", this->P_double2); settings.setValue("P_double3", this->P_double3); settings.endGroup(); settings.beginGroup("GroupName2"); settings.setValue("P_int1", this->P_int1); settings.setValue("P_int2", this->P_int2); settings.endGroup(); settings.beginGroup("GroupName3"); settings.setValue("P_string1", this->P_string1); settings.setValue("P_string2", this->P_string2); settings.endGroup(); }
运行程序,调用上述代码方法,即可读写程序目录下的“MyConfig.ini"文件。