所以我有一个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)。