在QML中有种js文件的使用方式是:指示编译器将js文件编译为共享资源(library)。
一、啥样的业务逻辑会让我们这么做呢?
QML 官方文档指出:一些JavaScript文件更像是库——它们提供一组帮助函数,这些函数可以接受输入和计算输出,但从不直接操作QML组件实例。
实际就是将界面与较多的逻辑分离,逻辑部分容易复用。
二、如何实现?
1>使用之前我们肯定得创建这样的一个js文件:
右击目标项目------>选择 Add New... ------> Qt ------> JS File ------> 写入文件名、选择目标路径------>勾选 "stateless library" 复选框。根据向导直到完成添加。打开我们新 建的文件会发现文件开始有行代码就是上边提到的编译指示:.pragma library。(是不是和MSVC下的#pragma 很像)
2>使用文件
first :在要使用它的QML document 里导入 ,语法为 import "pathname/JsLib.js" as JsLib
second :在界面逻辑中工作 JsLib.MethodName(); 来使用js中的帮助函数......
在我们定义通用且逻辑比较多的Component 时,这种技术很适用。可以肯定这样做的一个好处是会使我们代码结构很清晰。QML 文档真心不好找到且新手不易理解,
在这总结一下,希望对需要的人有所帮助。