gpt4 book ai didi

c++ - QVariantList追加

转载 作者:行者123 更新时间:2023-11-28 06:42:48 24 4
gpt4 key购买 nike

我尝试将一个 QVariant 附加到另一个 QVariant(它必须是一个 QVariantList)。

QList<int> listInt;
listInt.append(1);
QVariant v;
v.setValue(listInt);
if(v.canConvert(QVariant::List))
{
QVariant v1;
v1.setValue(5);
qvariant_cast<QVariantList>(v).append(v1);
}
objC.setProperty("_list", v);

但是在 obC 中,我的 _list 只包含整数 1。有什么问题?

最佳答案

问题是,qvariant_cast<>按值返回。所以你调用append()您不会更改原始对象,而只会更改拷贝。要使更改生效,您必须重置 QVariant,例如

    ...
QVariantList toChange = qvariant_cast<QVariantList>(v);
toChange.append(v1);
v.setValue(toChange);
...

或使用 QList<int>而不是 QVariantList

    ...
QList<int> toChange = qvariant_cast< QList<int> >(v);
toChange.append(47);
v.setValue(toChange);
...

关于c++ - QVariantList追加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25624848/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com