QML<10> qml 文件的插件封装 ,打包发布 ,隐藏qml文件
前言
在开发完成后,会将程序打包进行发布,这时不管是出于安全考虑还是其他原因都不愿将源码qml 文件打包到exe中 让用户可见,本文记录下隐藏qml打包方式
这段时间,工作上的事情忙的差不多了,又可以开始自己的博客记录了,哈哈。。。
一、描述
1.新建插件库
本文会将带打包的qml文件放到插件中,新建插件如下图所示:
2 添加qrc 资源文件
在新建的插件工程中加入资源文件,用于存放qml 文件和图片等其他项目资源
3 在资源文件中添加QML 文件
本文中添加qml 文件,并实现一个自定义Button ,代码如下:
import QtQuick 2.0
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.12
Rectangle
{
id: root
ColumnLayout{
spacing: 2
anchors.fill: parent
Image {
source: "qrc:/btn.jpg"
MouseArea
{
id:mouse
anchors.fill: parent
onClicked:
{
text.text ="mouse cliced"
text.color ='red'
console.log("mouse cliced from ComBtn")
}
}
}
Label
{
id:text
text: "cummon Btn"
font.pixelSize: 22
font.italic: true
color: "steelblue"
}
}
}
4.qml 文件注册
使用qmlRegisterType 函数,选择传参类型如下所示:、
特别说明:
uri :自定义插件模块的名称,该名称在新建项目的时候可修改,亦或者是在qmldir 中 修改 module 后名称
5、插件使用
<1>在使用插件的项目exe 文件同级目录下 新建文件名称为 自定义插件模块的名称 (qmldir 中 module 后名称)
<2>将插件生成的 dll 和对应的qmldir 拷贝到新建文件夹下
<3>项目qml 中使用同基础模块相同
ps:这里的报错涉及 自定义功能模块的的提示问题,后面文章给出修改
<4>项目打包
windeployqt.exe --qmldir exe中QML文件路径 exe
依赖项解决后就可以使用NSIS制作安装包了
总结
运行效果: