我有一个自定义的结构类型
struct SItemData {
int ItemType;
QString Uuid;
QString Name;
QDateTime Time;
QString HostAddress;
QVariant Message;
// ...
};
Q_DECLARE_METATYPE(SItemData)
如果遇到下面这种情况
class MyItem : public Object {
Q_OBJECT
public:
explicit MyItem(QObject* parent = nullptr);
//...
private:
QVariant data;
// ...
}
类里面使用的data是QVariant是因为要保存的不一定是SItemData类型,可能是其他类型。
如果我设置了 data 为 SItemData 类型的数据,但是想要改变内部的数据该如何做呢?我想到的方法是将 data 复制出一份再操作复制的数据,操作完后再对 data 重新设置值,但这样会不会太低效率了?所以有没有直接可以对 data 操作的方式?