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"文件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话