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"文件。

 

posted on 2025-01-22 10:55  云梦鸿  阅读(32)  评论(0)    收藏  举报