一、定义可以导出的 C++ 类
前提条件:
- 继承 QObject 类或者它的派生类(子孙类)
- 使用 Q_OBJECT 宏
使用了以上两点之后,C++ 类算是进入了元对象系统,这时该类的某些方法或者属性才可能可以通过 字符串形式 的名字来访问,才具有了能在 QML 中访问的基础条件。
class HelloQml
: public QObject //继承 QObject 类,在 QML中就可将 HelloQml 看为可使用的对象
{
Q_OBJECT //使用 Q_OBJECT 宏
// 定义可通过元对象系统访问的属性(比如 width)
Q_PROPERTY( int color READ color WRITE setColor NOTIFY colorChanged )
// 使用 Q_PROPERTY 宏定义变量,并且通过指定某些东西,可以在 QML 中访问、修改该变量,也可以在属性变化时发射指定的信号
// READ 后面指定的是一个函数名,该函数用来读取属性(和元素同名)

本文介绍了如何在C++中定义可导出到QML的类,包括继承QObject,使用Q_OBJECT宏,以及Q_PROPERTY、Q_ENUMS、Q_INVOKABLE的使用。此外,还阐述了如何在main.cpp中注册QML可用类型,以及在QML中导入和使用这些类型。通过实例展示了C++与QML的交互方式。
最低0.47元/天 解锁文章
589

被折叠的 条评论
为什么被折叠?



