这两天想做一份自己的qml组件,写在项目里面的话就得每个项目都有一份,太麻烦了,组件多的话又要内存,所以看了一下把组件单独做成了一个项目,直接导入把它到各个项目就可以用了
首先得有一份qmldir,如图:
不需要像我这样,我是为了后续添加其他内容,所以分了多个pro文件,然后是qmldir内容如下
#UIComponents是后面你导入时候用的,要与所在文件夹名字相同,1.0是版本号
module UIComponents
UISkin 1.0 UISkin.qml
UILable 1.0 UILable.qml
UIBotton 1.0 UIBotton.qml
UIProgress 1.0 UIProgress.qml
然后是到开发项目里main.cpp添加下面内容
导入Qt资源路径
QQmlApplicationEngine engine;
engine.addImportPath("qrc:/");
之后在pro导入资源所在路径
QML_IMPORT_PATH = ../dev/uibase/
QML_DESIGNER_IMPORT_PATH = ../dev/uibase/
路径就是你的qrc所在位置,上面截图可以看到我的是uibase
这里也是为了有联想提示,网上有些说需要用Qt目录下的工具生成一个.qmltypes的文件,我感觉太麻烦了,没有试,这个导入如果有报错说导入未定义的模块就重启下Qt
代码段
import UIComponents 1.0
UIBotton{}