例如,在C ++中定义的基于QObject的空类。它是从QML创建的。然后C ++通过setProperty
向它添加一些属性。但它们无法被QML访问。
其他示例:使用setContextObject
然后开始向该C ++对象添加属性。对QML没有影响。
如何让它发挥作用?
更新
我看到两个选项:私有API(MetaObject构建器)和运行时QML项的代码生成。
答案 0 :(得分:1)
我认为您正在寻找QQmlPropertyMap。它允许您动态添加属性。不过,通常最好在C ++中通过qt模型预定义值,并且使用QQmlPropertyMap的用例并不多。
实际上有几种方法可以做到这一点,this article has a great explanations.