QT_QSettings类的使用举例(读写ini文件)

        qt代码实现的获取ini文件下所有节点名称的函数,如果想要同时获取所有键值,可以修改一下函数的返回值,让它返回一个QMap<QString, QVariant>类型的对象,这样就可以存储键和值的对应关系。代码如下:
#include <QSettings>
#include <QMap>
#include <QVariant>
#include <QDebug>

// 定义一个函数,参数是ini文件的路径,返回值是一个QMap<QString, QVariant>类型的对象,包含所有键和值
QMap<QString, QVariant> getAllKeyValues(const QString& iniFilePath)
{
    // 创建一个QSettings对象,指定ini文件的路径和格式
    QSettings settings(iniFilePath, QSettings::IniFormat);

    // 创建一个空的QMap对象,用来存储键和值
    QMap<QString, QVariant> keyValues;

    // 遍历ini文件中的所有组(section)
    foreach (const QString& group, settings.childGroups())
    {
        // 进入该组
        settings.beginGroup(group);

        // 遍历该组中的所有键(key)
        foreach (const QString& key, settings.childKeys())
        {
            // 获取键对应的值(value)
            QVariant value = settings.value(key);

            // 将键和值的对应关系添加到QMap对象中
            keyValues.insert(group + "/" + key, value);
        }

        // 退出该组
        settings.endGroup();
    }

    // 返回QMap对象
    return keyValues;
}

// 测试函数
int main()
{
    // 假设有一个名为test.ini的文件,内容如下:
    /*
    [electron]
    position=0,0,0
    velocity=0,0,0

    [proton]
    position=1,0,0
    velocity=0,0,0

    [proton]
    position=-1,0,0
    velocity=0,0,0
    */

    // 调用函数,传入ini文件的路径
    QMap<QString, QVariant> keyValues = getAllKeyValues("test.ini");

    // 打印结果
    qDebug() << keyValues;

    // 输出:
    /*
    QMap(("electron/position", QVariant(QString, "0,0,0")) 
         ("electron/velocity", QVariant(QString, "0,0,0")) 
         ("proton/position", QVariant(QString, "-1,0,0")) 
         ("proton/velocity", QVariant(QString, "0,0,0")))
    */
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值