把c++中接受到的json对象传递给qml做model

该代码示例展示了一个C++类,它将QJsonObject转换成QList,用于QtQuick的GridView或ListView的模型数据。在QML中,可以通过modelData访问每个单元格的数字和颜色信息。主程序还包含了如何在QML中注册和使用这个C++类的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

废话不多说直接放代码

#ifndef CONTROL_H
#define CONTROL_H
#include <QJsonDocument>

class Control :public QObject{
    Q_OBJECT
public:
    Control();
    Q_INVOKABLE QList<QList<QVariant> > receiveNotes();
private:


};
#endif // CONTROL_H

QList<QList<QVariant>> Control::receiveNotes()
{
    QJsonObject obj{
  
  {"1","red"},{"2","blue"},{"3","green"},{"4","white"}};
    QJsonDocument doc(obj);
    QStringList keys=obj.keys();
    QList<QList<QVariant>> sl;
    for(auto key:keys){
        QList<QVariant> temp;
        auto value=obj.value(key).toVariant();
        temp.append(key);
        temp.append(value);
        sl.append(temp);
    }
    return sl;
}

这是一个c++类他把接受到的QJsonObject转换成了一个QList列表

这个列表就可以直接做qt中gridview或listview的model了

此处model生成的每个单元是{“数字”,“颜色”},想在qml中单独访问数字或颜色可以用modelData[i]

import QtQuick
import QtQuick.Controls

ApplicationWindow {
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值