和网上教程一样创建插件工程,导出插件。
在工程qmldir文件中
module后为uri,plugin后为生成的dll名 ,classname为继承QQmlExtensionPlugin的类名,typeinfo为库对应的plugins.qmltypes文件名。
然后创建一个文件夹名为插件名即上文的module的名字(MyPlugin ),文件夹中放入生成的dll以及上文的qmldir。
使用qmlplugindump.exe MyPlugin 1.0 插件父目录(即上文创建的MyPlugin 文件夹在的目录) > 插件父目录\MyPlugin\plugins.qmltypes,注意重定向符号 >
命令生成plugins.qmltypes文件。
修改plugins.qmltypes,在exports里添加路径:
MyPlugin 的目前内容为:
将MyPlugin文件夹放入Qt安装目录
或者在使用插件的工程中使用QML_IMPORT_PATH =语句添加插件所在路径
即可在应用工程使用import MyPlugin 1.0语句导入插件并使用。
但是发现Qt不能提示自动补全,在plugins.qmltypes文件中添加Mybutton Mybutton.qml,在MyPlugin 文件夹中添加Mybutton.qml文件,重新打开Qt工程即可发现支持自动补全。
打包时要把MyPlugin文件夹放入打包目录,可以把其中的Mybutton.qml文件删除。
最终MyPlugin目录:
最终plugins.qmltypes文件内容:
最终qmldir文件内容
插件使用: