1. QML插件
- 纯QML插件,即将QML文档转化成动态链接库(windows下是dll,linux下是.so,mac下是dyso)
- 基于C++的扩展插件,比如自定义类的属性、方法,以便在QML中使用它们。这种插件一般使用得不多,原因是有点脱裤子放屁
下面分别针对这两种情况做下介绍,以及遇到的坑的说明。这里介绍是基于Qt Creator,使Qt版本是Qt5.15。
2. 基于C++扩展插件
首先创建Qt Quick插件工程,如下:
从向导可以看出,创建插件其实就是封装动态库。
这里工程的名称叫MyPlugin。
这里的命名都是默认的,MyItem是C++类的名称,URI表示模块名称,比如import QtQuick 2.0,这里的Q tQuick就是模块名称。关于模块命名与使用上,会有一些坑要注意,后面再具体解释。
这里以Release方式编译就可以了。
这里下接点完成即创建好这个工程。
创建好的工程目录结构是这样的,myplugin_plugin.cpp是用来注册QML Type给QML使用的
myitem.cpp是一个类,这个类可以导出给QML使用,具体导出在myplugin_plugin.cpp类的构造函数里用qmlRegisterType注册。如果有更多的C++类,比如A,B…等类,只需要在这个工具里添加新类即可,然后在myplugin_plugin.cpp里注册。
这是MyPlugin.pro配置文件内容,