QML中调用C++
之前看过书,也跟着编写一些demo
,但感觉理解还不是很深入
详细可看博客:https://blog.csdn.net/foruok/article/details/32698603
强调:QML中调用C++有两种方法
1. 将C++类注册入QML
2. 将C++对象放入QML上下文
第一种方法,注意是类
采用这种方法时,
- 需要在加载QML之前,进行注册
- 需要在QML中调用Import,导入所注册的类
QML中使用时,
- 可以用注册时的名字在QML中定义一个对象
- 然后对对象进行操作
这种方式下,可以通过类名来访问来访问类的枚举类型
第二种方法,注意是对象
采用这种方法时,和第一种的区别是:
- 在加载QML前,需要先创建一个对象并放入QML的上下文中
- QML中不需要使用Import导入
在QML中使用时
- 可以用对象名来访问对象的成员
- 但不能通过类名来访问枚举值了
两种方法的共同点是:
- 所调用的方法是有限的,只有槽函数、信号、和三个宏定义(Q_INVOKABLE、Q_ENUMERATION、Q_PROPERTY)修饰的成员才可以进行访问
- 有共同的前提条件
- 从QObject或QObject的派生类继承
- 使用Q_OBJECT宏
留作备忘,如有错误,望大佬不吝留言指正,感谢!!!