Qt中QSettings类读取INI配置文件
#include <QCoreApplication>
#include <QSettings>
#include <QDebug>
#include <QFile>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 检查配置文件是否存在
QString configPath = "config.ini";
if (!QFile::exists(configPath)) {
qDebug() << "配置文件不存在,创建默认配置...";
QSettings createConfig(configPath, QSettings::IniFormat);
createConfig.setValue("Database/host", "localhost");
createConfig.setValue("Database/port", 3306);
createConfig.setValue("Database/username", "admin");
createConfig.setValue("Database/password", "123456");
createConfig.setValue("AppSettings/theme", "dark");
createConfig.setValue("AppSettings/language", "zh_CN");
createConfig.sync(); // 立即写入文件
}
// 读取配置文件
QSettings config(configPath, QSettings::IniFormat);
config.setIniCodec("UTF-8"); // 设置编码防止中文乱码
// 读取数据库配置
qDebug() << "\n[数据库配置]";
qDebug() << "主机:" << config.value("Database/host").toString();
qDebug() << "端口:" << config.value("Database/port").toInt();
qDebug() << "用户名:" << config.value("Database/username").toString();
qDebug() << "密码:" << config.value("Database/password").toString();
// 读取应用设置
qDebug() << "\n[应用设置]";
qDebug() << "主题:" << config.value("AppSettings/theme").toString();
qDebug() << "语言:" << config.value("AppSettings/language").toString();
// 分组读取示例
config.beginGroup("Database");
qDebug() << "\n[分组读取]";
qDebug() << "主机(分组):" << config.value("host").toString();
config.endGroup();
return a.exec();
}[Database] host=localhost port=3306 username=admin password=123456 [AppSettings] theme=dark language=zh_CN
配置文件创建与初始化
QSettings createConfig(configPath, QSettings::IniFormat);
createConfig.setValue("Database/host", "localhost");
createConfig.sync(); // 强制写入磁盘分组读取的实现
config.beginGroup("Database");
QString host = config.value("host").toString();
config.endGroup();目录 返回
首页