我尝试将一个QVariant附加到另一个QVariant (必须是一个QVariantList)。
QList listInt;listInt.append(1);QVariant v;v.setValue(listInt);if(v.canConvert( QVariant ::List)) {QVariant v1;v1.setValue(5);qvariant_cast(v).append(v1);} objC.setProperty("_list",v);
但是在obC中,我的_list只包含整数1。问题是什么?
发布于 2014-09-02 14:06:30
问题是,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); ...
https://stackoverflow.com/questions/25624848
复制相似问题