Qt6开发跨平台音乐播放器(四):通用配置类

1. 目标

客户端程序经常需要读取/保存配置,而配置项的内容各种各样,且可能存在多个配置文件,所以我们写一个通用的配置类,具备以下功能特性:

  • json格式

  • 读取/保存配置文件

  • 统一访问接口

  • 线程安全

2. 实现

创建一个configuration模块,包含一个Configuration类:

configuration
    - configuration.pri
    - configuration.h
    - configuration.cpp

2.1 json格式

在Qt程序中,一般使用QVariantMap/QVariantList来匹配json文档结构,而QFile读取文件返回的数据为QByteArray类型,Qt提供了QJsonDocument等类来实现QVariant和QByteArray之间的转换,我们封装一下:

// configuration.h
class Configuration {
   
   
...
private:
    QVariant json2variant(const QByteArray &json);
    QByteArray variant2json(const QVariant &variant);
}

// configuration.cpp
QVariant Configuration::json2variant(const QByteArray &json) {
   
   
    QJsonParseError parseError;
    QJsonDocument doc = QJsonDocument::fromJson(json, &parseError);
    if (QJsonParseError::NoError != parseError.error) {
   
   
        return QVariant();
    }
    return doc.toVariant();
}

QByteArray Configuration::variant2json(const QVariant &variant) {
   
   
    QJsonDocument doc = QJsonDocument::fromVariant(variant)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值