Qt 生成windows和linux下的QML组件动态库
如何生成QML组件动态库?
- 首先创建Qt Quick2 Extention 项目。
创建过程中,在uri处填写想要在import时引入的名称。
项目创建完成后,添加资源文件。
-
在新增的资源文件中,添加新的QML组件,并编辑完成。
-
打开qmldir文件,编辑plugin名称,该名称为生成的动态库名称。
-
在qmldir中添加 typeinfo plugins.qmltypes
-
打开[]_plugin.cpp文件,添加注册组件:
-
qmlRegisterType(“qrc:/MyQMLItem.qml”, uri, 1, 0, “MyQMLItem”);
如果使用c++创建qml扩展组件,则创建对应的cpp文件,并编辑完成,然后使用如下语句注册:
qmlRegisterType(uri, 1, 0, “MyCPPItem”);
- 编译项目,生成debug和release版本的.dll、.a文件,将该文件和qmldir文件copy到Qt目录下的qml文件夹,创建uri名称对应的文件夹,将文件和qmldircopy到该目录下。
- 使用qt bin目录下的qmlplugindump 生成该库对应的plugins.typeinfo文件:
- 打开cmd命令行,执行如下语句:
- qmlplugindump -nonrelocatable [uri] 1.0 ./ > [url]/plugins.qmltypes
- 生成完成后,重启qtcreator,即可在windows下使用该动态库。
对于linux,编译完成后,在qt qml目录下创建uri文件夹,并将.so文件、qmldir文件和windows下生成的plugins.typeinfo文件copy到该文件夹。