来自自定义类的QML变量 >: #ifndef MEDIA_H #define MEDIA_H class Media { public: explicit Media(); virtual ~Media(); void setAllMedia(QString id, QString type, QString media, QString meta); signals: private slots: private: QString _id; QString _type; QString _media; QString _meta; }; #endif
在另一个QML文件中,我有一些代码,它可以从类似这样的QML变量中读取非常好的值:来自自定义类的QML变量 >: #ifndef MEDIA_H #define MEDIA_H class Media { public: explicit Media(); virtual ~Media(); void setAllMedia(QString id, QString type, QString media, QString meta); signals: private slots: private: QString _id; QString _type; QString _media; QString _meta; }; #endif,qml,qt5,qtquick2,qlist,qvariant,Qml,Qt5,Qtquick2,Qlist,Qvariant,在另一个QML文件中,我有一些代码,它可以从类似这样的QML变量中读取非常好的值:main.ml: property variant medias:[[]] ... medias = [{ "id": "7", "type": "image", "media": "1451138132567e9c544fc64.png", "meta": null }, { "id": "8", "type": "image", "media": "145
main.ml
:
property variant medias:[[]]
...
medias = [{
"id": "7",
"type": "image",
"media": "1451138132567e9c544fc64.png",
"meta": null
}, {
"id": "8",
"type": "image",
"media": "1451150881567ece21bb77e.png",
"meta": null
}, {
"id": "9",
"type": "video",
"media": "1451150924567ece4c68775.png",
"meta": null
}]
问题是,我需要动态地创建C++中的变体媒体数组,并将其发送到QML。p>
我有一些信号将媒体阵列从C++发送到QML,但是这个数组在代码> qList< /COD>内。如何将其转换为
QVariant
,以便QML能够读取?如果向注册这些类,则可以在QVariant对象中存储自定义类
<>这将使您的C++代码从代码>媒体>代码>转换为代码> qValue<代码>,但是<>代码>媒体< /代码>类将不能在QML中使用。
相反,只需创建一个QHash
或QMap
来存储属性,因为它们是自动反转的(请参阅)