You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qt 6中如何将QVariantList作为独立实体追加到另一个QVariantList?

在Qt 6中实现将QVariantList作为独立元素追加的方法

Qt 6为QList新增了右值引用版本的append(QList<T> &&value)重载,该方法会把传入列表的元素逐个移动到当前列表末尾。这就导致Qt 5里直接用containerList.append(subList)将subList作为单个元素加入的代码,在Qt 6中会变成把subList的所有元素展开添加进去。

要恢复Qt 5的预期效果,只需把subList显式包装成QVariant再追加即可——这样编译器会匹配接收QVariant的append重载,而非接收QList的重载:

QVariantList subList;
subList.append(QVariant(false));
subList.append(QVariant("a string"));

QVariantList containerList;
// 显式将subList转为QVariant,作为单个元素添加
containerList.append(QVariant(subList));

处理后,containerList中只会包含1个元素(即整个subList),和Qt 5的行为完全一致。

你也可以用push_back替代append,效果完全相同:

containerList.push_back(QVariant(subList));

内容的提问来源于stack exchange,提问作者Paul Masri-Stone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 15:42:54