c++和qml数据传递

本文介绍了如何在C++中通过QJsonArray和QJsonObject处理数据,通过槽函数onUpdate在QML中更新ListModel,并展示了如何将JSON对象转换和显示在控制台上。

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

// c++ 信号
void sigUpdate(QJsonArray jsonArray, QJsonObject jsonObj);

void emitSigUpdate()
{
	QJsonArray jsonArray;
	for (int32_t i = 0; i < 4; ++i)
    {
    	QJsonObject jsonObj;
    	jsonObj["Name"] = "A";
    	jsonObj["Type"] = i;

		jsonArray.push_back(jsonObj);
    }
	QJsonObject jsonObj;
	jsonObj["Array"] = jsonArray;

	emit sigUpdate(jsonArray, jsonObj);
}

// qml 槽函数
function onUpdate(jsonArray, jsonObj)
{
	// 假设有个ListModel变量叫 listModel
	for (var i = 0; i < jsonArray.length; ++i) {
		console.log(channelJsonArray[i].Name)
		console.log(channelJsonArray[i].Type)

		listModel.set(i, {"Name": channelJsonArray[i].Name, "Type": channelJsonArray[i].Type})

		// 或者采用以下方式
		// listModel.setProperty(i, "Name", channelJsonArray[i].Name)
		// listModel.setProperty(i, "Type", channelJsonArray[i].Type)
	}

	// 格式化ListModel并打印到控制台
	for (var idx = 0; idx < listModel.count; ++idx) {
        console.log(JSON.stringify(listModel.get(idx), null, 2))
    }

	console.log(JSON.stringify(jsonObj.Array))
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值