如何在C ++中动态添加/删除QML属性?

时间:2015-12-20 09:18:21

标签: c++ qt reflection qml

例如,在C ++中定义的基于QObject的空类。它是从QML创建的。然后C ++通过setProperty向它添加一些属性。但它们无法被QML访问。

其他示例:使用setContextObject然后开始向该C ++对象添加属性。对QML没有影响。

如何让它发挥作用?

更新

我看到两个选项:私有API(MetaObject构建器)和运行时QML项的代码生成。

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找QQmlPropertyMap。它允许您动态添加属性。不过,通常最好在C ++中通过qt模型预定义值,并且使用QQmlPropertyMap的用例并不多。

实际上有几种方法可以做到这一点,this article has a great explanations.