C ++将映射传递给qml以确定项目的可见性

时间:2016-06-06 01:24:28

标签: c++ qt qt4 qml

我正在运行QT 4.8应用程序。我希望能够将地图传递给qml以确定某些文本项的可见性。

QQMLPropertyMap允许这样做,但我不能用4.8。有什么类似我可以做的吗?

以下是我的目的:

C ++

map <String, bool> // some type of map to determine visibility
map.insert("key1", true); // insert key/pair values
map.insert("key2", false);

QML

Text {
    text: "key1"
    visible: map.key1
}
Text {
    text: "key2"
    visible: map.key2
}

此外,每当更改地图值时,我都希望可见性在qml中更改。防爆。 map.insert(&#34; key1&#34; false),现在&#34; key1&#34;不可见。

QT 4.8中有什么与此相似的内容吗?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以使用QtDeclarative模块中的QDeclarativePropertyMap。 QDeclarativePropertyMap类允许您设置可在QML绑定中使用的键值对。

QtDeclarative模块在Qt 5中已经deprecated。之前在QtDeclarative模块中的所有类都已移至Qt QML和Qt Quick模块中,并且其类名已更改为反映其新模块位置

  

QDeclarativePropertyMap - &gt; QQmlPropertyMap