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

How to dynamically add/remove QML properties inside C++?

本文关键字:删除 QML 属性 添加 动态 C++      更新时间:2023-10-16

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

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

如何使其发挥作用?

更新

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

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

实际上有几种方法可以做到这一点,本文对此有很好的解释。