繁体   English   中英

如何在QML中打包自定义控件?

[英]How to package custom controls in QML?

我想创建一个QML自定义控件库,该库将提供给我的客户。 同时,我不希望我的客户通过查看QML源代码来“反向工程化”我的控件。

为避免这种情况,我最好的选择是什么? 理想的情况是,我将控件作为已编译的库提供,它们可以在自己的项目中导入。

我的目标平台是iOS和Android。

如何为自定义QML控件创建包? 这些控件不应打包为源代码形式,以防止进行反向工程。

这个问题意味着作者具有使用QML技术本身(不是C ++)实现的QML自定义控件。 否则,它可能已经是QML C ++插件,并以编译库或某种其他形式的本机代码形式提供(我们可以只注册QML类型并从可执行文件中提供必要的导入)。

为了实现QML插件 (仅带有QML源代码),我们应该创建特殊类型的项目。 将其组织为嵌套的子目录项目很方便,以使其与应用程序的其余部分一起工作。 请注意,一个插件项目可能包含许多新的QML类型。

为了使QML代码不可见,我们现在可以使用在某些Qt许可下可用的Qt Quick编译器对其进行编译

当构建用于静态链接时,从5.7开始,Qt会将QML模块构建为共享库,将qml文件作为资源嵌入,而不是从文件系统中使用它们。 因此,这将是一种方法,进行静态Qt构建并将自定义控件构建为模块。

尽管已经概述另一种潜在的方法,但是方法要复杂得多。

QML文件可以包含在QRC配置文件中,并可以在代码中使用"qrc:/" 在构建时,它们然后被包含在目标二进制文件中,以保护它们免受分散的眼睛的伤害。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM