Qt配置文件的一些基本操作

使用 QSettings 可以很方便地读写 .ini 配置文件。这里整理几个最常用的操作:初始化、读取、写入、删除和同步,适合做快速查阅。

初始化

如果你想直接操作一个 .ini 文件,可以这样初始化:

1
2
3
4
5
#include <QCoreApplication>
#include <QSettings>

QString configPath = QCoreApplication::applicationDirPath() + "/config.ini";
QSettings ini(configPath, QSettings::IniFormat);

其中:

  • configPath 是配置文件路径
  • QSettings::IniFormat 表示使用 ini 格式

配置文件示例

假设配置文件内容如下:

1
2
3
4
5
6
7
[network]
host=127.0.0.1
port=8080

[user]
name=admin
remember=true

读取配置

直接按路径读取

适合读取单个值,写起来最简单:

1
2
3
QString host = ini.value("network/host").toString();
int port = ini.value("network/port", 80).toInt();
bool remember = ini.value("user/remember", false).toBool();

这里推荐给 value() 传一个默认值。这样即使配置项不存在,程序也能拿到一个可用结果。

进入分组后读取

如果同一组里要读很多项,使用分组会更清晰:

1
2
3
4
ini.beginGroup("user");
QString name = ini.value("name").toString();
bool remember = ini.value("remember", false).toBool();
ini.endGroup();

写入配置

setValue() 会在键不存在时自动创建对应的配置项。

1
2
3
4
5
6
7
ini.setValue("network/host", "192.168.1.10");
ini.setValue("network/port", 8080);

ini.beginGroup("user");
ini.setValue("name", "admin");
ini.setValue("remember", true);
ini.endGroup();

删除配置

删除单个配置项:

1
ini.remove("user/name");

删除整个分组:

1
ini.remove("user");

同步到磁盘

大多数情况下,QSettings 会自动处理保存,不需要手动调用保存函数。

如果你希望立即把内容写入磁盘,可以调用:

1
ini.sync();

比如在程序退出前、修改重要配置后,手动同步一次会更稳妥。

小结

QSettings 的常见操作并不复杂,记住下面几项基本就够用了:

  • value() 读取配置
  • setValue() 写入配置
  • remove() 删除配置
  • beginGroup() / endGroup() 处理分组
  • sync() 立即同步到磁盘

如果只是做普通桌面程序的设置保存,QSettings 基本已经够用了。


Qt配置文件的一些基本操作
https://zao-chen.github.io/posts/8c57ed3c/
作者
Zao_chen
发布于
2026年1月31日
许可协议