惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hacker News - Newest:
Hacker News - Newest: "LLM"
U
Unit 42
爱范儿
爱范儿
博客园_首页
量子位
S
SegmentFault 最新的问题
IT之家
IT之家
T
Tailwind CSS Blog
J
Java Code Geeks
Apple Machine Learning Research
Apple Machine Learning Research
腾讯CDC
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Hugging Face - Blog
Hugging Face - Blog
雷峰网
雷峰网
人人都是产品经理
人人都是产品经理
小众软件
小众软件
AWS News Blog
AWS News Blog
T
The Exploit Database - CXSecurity.com
C
Cyber Attacks, Cyber Crime and Cyber Security
L
Lohrmann on Cybersecurity
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Cyberwarzone
Cyberwarzone
博客园 - 【当耐特】
Latest news
Latest news
Security Latest
Security Latest
T
Tor Project blog
I
Intezer
P
Privacy & Cybersecurity Law Blog
博客园 - 三生石上(FineUI控件)
S
Schneier on Security
The Cloudflare Blog
P
Privacy International News Feed
WordPress大学
WordPress大学
V
Vulnerabilities – Threatpost
P
Palo Alto Networks Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 聂微东
P
Proofpoint News Feed
阮一峰的网络日志
阮一峰的网络日志
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
G
GRAHAM CLULEY
Hacker News: Ask HN
Hacker News: Ask HN
月光博客
月光博客
C
CXSECURITY Database RSS Feed - CXSecurity.com
Last Week in AI
Last Week in AI
N
News and Events Feed by Topic
Jina AI
Jina AI
V
V2EX
S
Securelist

博客园 - 云梦鸿

Winform界面显示的“语言”切换 Linux使用笔记 QT 练习笔记 ubuntu 配置网口静态IP C++ 读写文件 C#编写Windows服务 C#代码计算农历(日期、节气、节日) 中标麒麟,使用笔记 关于无密码访问 Windows7/10 的远程桌面/共享 颜色转换:HSB颜色 与 RGB颜色 QT 信号(槽)绑定的使用_connect QT 给控件(Label)设置显示图片 QT 打包Windows应用程序(*.exe) C#程序执行Python脚本 C#监控U盘插拔 C# AnimateWindow 设置窗体动画 C# GetWindowRect 获取窗体在屏幕中的位置信息 C# 创建音频WAVE文件头信息(*.wav) VS2019错误:CS8370 的处理方法
QT 读写配置文件(*.INI)
云梦鸿 · 2025-01-22 · via 博客园 - 云梦鸿

核心类库: 参见>>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"文件。