我有一个 QVariantList 包含不同类的对象。我需要修改列表中的一个对象的成员变量。我的代码运行,但对象没有改变(看起来对象的副本正在改变)。这是类似于我正在做的示例代码:
QVariantList l;
QVariant v = l.at(0);
MyClass c;
if (v.canConvert<MyClass >()) c = v.value<MyClass >();
c.myfield(10);
// l.at(0) has not changed
我也试过:
qvariant_cast<MyClass>(v).myfield(10)
但没有区别。我想更改对象的 myfield,而不是对象的副本。如何修改 QVariant v 中保存的对象的“myfield”字段。