QSettings读写ini配置文件

Qt中使用QSettings类读取ini后缀的配置文件非常简单,使用该类也可以很简单的操作Windows注册表。以前也使用过MFC中的WritePrivateProfileString()和GetPrivateProfileString()这两个API操作ini配置文件。

使用QSettings类读写ini配置文件的示例代码

相关代码如下:

// test.cpp

#include <QCoreApplication>
#include <QSettings>
#include <iostream>
#include <QDebug>

using namespace std;

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QString fileName;
    fileName = QCoreApplication::applicationDirPath();
    fileName += "/config/net.ini";

    QSettings settings(fileName, QSettings::IniFormat);
    // 设置服务器的ip和端口信息
    settings.beginGroup("server");
    settings.setValue("ip", "192.168.1.120");
    settings.setValue("port", 10001);
    settings.endGroup();

    // 设置数据库连接信息
    settings.beginGroup("dbInfo");
    settings.setValue("dbSource", "MySQL");
    settings.setValue("host", "15.15.0.216");
    settings.setValue("port", 9011);
    settings.setValue("username", "root");
    settings.setValue("password", "123456");
    settings.setValue("dbName", "HBHazeDB");
    settings.endGroup();

    // 读取ini文件
    settings.setIniCodec("UTF8");  // 设置编码方式  --->解析ini配置文件中的文字问题
    // 获取server分组下的ip和端口信息
    settings.beginGroup("server");
    QString strIp = settings.value("ip").toString();
    int port = settings.value("port").toInt();
    settings.endGroup();

    // 获取dbInfo分组下的数据库连接信息
    settings.beginGroup("dbInfo");
    QString dbSource = settings.value("dbSource").toString();
    QString host = settings.value("host").toString();
    int dbPort = settings.value("port").toInt();
    QString username = settings.value("username").toString();
    QString password = settings.value("password").toString();
    QString dbName = settings.value("dbName").toString();
    settings.endGroup();

    qDebug() << "server info:[" << "ip:" << strIp << ",port:" << port << "]";

    qDebug() << "dbInfo:[" << "dbSource:" << dbSource << ",host:" << host <<
                ",dbPort:" << dbPort << ",username:" << username
             << ",password:" << password << ",dbName:" << dbName << "]";


    return a.exec();
}

对应的net.ini配置文件如下:

[server]
ip=192.168.1.120
port=10001

[dbInfo]
dbSource=MySQL
host=192.168.0.101
port=8099
username=root
password=123456
dbName=testDB

参考文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值