【Qt Qml】QML与C++交互
从c++定义QML类型
当用c++代码扩展QML时,可以向QML类型系统注册一个c++类,以使该类可以用作QML代码中的数据类型。虽然任何qobject派生类的属性、方法和信号都可以从QML中访问,正如在向QML公开c++类型的属性中所讨论的那样,但是这样的类在向类型系统注册之前不能作为QML中的数据类型使用。此外,注册还可以提供其他特性,例如允许从QML中将类用作可实例化的QML对象类型,或者允许从QML导入和使用类的单例实例。
此外,Qt Qml模块提供了实现特定于Qml的功能的机制,例如c++中的附加属性和默认属性。
(请注意,本文档中涉及的许多重要概念在使用c++编写QML扩展教程中进行了演示。)
注意:所有声明QML类型的头文件都需要从项目的include路径中不带任何前缀地访问。
用QML类型系统注册c++类型
可以向QML类型系统注册qobject派生类,以使该类型可以在QML代码中用作数据类型。
该引擎允许注册可实例化和不可实例化的类型。注册可实例化类型使c++类可以用作QML对象类型的定义,从而允许在QML代码的对象声明中使用它来创建该类型的对象。注册还为引擎提供了额外的类型元数据ÿ