所以我有一个Q_PROPERTY暴露给qml,如下所示

Q_PROPERTY(QVariantMap info READ getInfo NOTIFY infoChanged)

QVariantMap ProfileInfo::getInfo()
{
    return info;
}

现在,我的问题是,下面的方法会更高效,更便宜吗?
Q_PROPERTY(QVariantMap* info READ getInfo NOTIFY infoChanged)

QVariantMap* ProfileInfo::getInfo()
{
    return &info;
}

最佳答案

效率略高一点(QVariantMap使用implicit sharing,所以副本并不昂贵),但是您最大的问题是QML不知道如何处理QVariantMap *,而仅使用QVariantMap(请参阅here)。

10-07 13:35