注册C++类,可以在qml文件中使用C++类,就像在C++源代码中使用类一样(定义对象、指针等)。
qmlRegisterType 是一个可以将C++实现的类在QML中调用的,连接C++和QML的一个工具。
函数定义如下:
int qmlRegisterType(const char * uri, int versionMajor, int versionMinor, const char * qmlName)
This template function registers the C++ type in the QML system with the name qmlName, in the library imported from uri having the version number composed from versionMajor and versionMinor.
Returns the QML type id.
第一个参数* uri指的是QML中import后的内容,相当于头文件名,第二个第三个参数分别是主次版本号,第四个指的是QML中类的名字(第四个QML的类名首字母一定要大写,要不然会报错)。
使用步骤:
1、定义C++类
//Test.h
class Test: public QObject
{
};
2、使用qmlRegisterType 注册C++类
#include <QtQml>
#include "Test.h"
void main(){
qmlRegisterType<Test>("MyTest", 1, 0, "Test");
}
3、在qml文件中使用C++类
import MyTest 1.0
ApplicationWindow {
Test{
}
}