QVariant如何更改内部已经设置好的值(非指针类型)


我有一个自定义的结构类型

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 操作的方式?

图片说明

图片说明