关于导出C++的学习
本文档 是公司同事黄工所写
QML与c++交互学习笔记(一)
说明,主要是对QT的文档内例子进行的一些分别解说,希望更容易的理解
C++导出到QML的过程。
1.导出一个简单的类Person
2.具体导出过程
假设我们要导出一个Person类,
A 那么就要考虑如何的一个类他才可以导出呢?
他需要符合一定的条件
1.继承自QObject
2.有默认构造函数
B 如何导出呢?
通过一个函数
int qmlRegisterType(const char *uri, int versionMajor, int versionMinor, const char *qmlName)
int qmlRegisterType()
3.具体的例子
// person.h |
// main.cpp
|
// UICtest.qml import Qt 4.7 import People 1.0 //如果是qmlRegisterType<Person>(); 导出就可以注释这条 Rectangle { width: 640 height: 480 Person{} } |
说明:我们通过qmlRegisterType<Person>("People",1,0,"Person");
向QML中导出Person类,这个类在People包中,在QML中需要使用Person类的
话就必须包含People包,通过import People 1.0来包含,之后就可以使用Person
创建对象使用来。
QML与c++交互学习笔记(二)
1.导出Person类中的成员方法
2.具体导出过程
导出的方法有
1.使用Q_INVOKABLE
2.使用 槽机制
3.具体代码
// person.h |
// person.cpp |
// main.cpp
|
// UICtest.qml import Qt 4.7 import People 1.0 //如果是qmlRegisterType<Person>(); 导出就可以注释这条 Rectangle { width: 640 height: 480 Person{ id: per;} MouseArea{ anchors.fill: parent; onClicked:{ per.FirstEcho(); per.SecondEcho(); } } } |
说明:
这里导出了两个函数分别是FirstEcho 和SecondEcho 两个函数,这两个函数本别是使用
FirstEcho使用使用 Q_INVOKABLE导出,SecondEcho直接使用槽。
调用函数在控制台输出一些信息,这里是在鼠标点击界面后出发的。
QML与c++交互学习笔记(三)
1.导出Person类中的属性
2.具体导出过程
1.导出Person一个颜色属性,一个int属性