QML旧版模块(已废弃)
传统模块是其规范qmldir
文件不包含模块标识符指令的模块。可以将旧版模块安装到QML导入路径中(作为已安装的旧版模块),也可以由具有相对导入功能的客户端导入(作为定位的旧版模块)。建议客户尽可能避免使用旧模块。模块开发人员应确保他们创建已标识的模块,而不是旧模块。
已安装的旧版模块
QML引擎会自动为已安装的未标识模块提供标识符。该隐式定义的标识符等于模块的安装路径(相对于QML导入路径),其中目录分隔符用句点字符替换。
安装到QML导入路径中的未标识模块具有以下语义:
- 它可以由客户端通过隐式模块标识符导入
- 客户端在导入模块时必须指定版本
- QML引擎可以任意解决冲突的类型名称,并且不能保证解决冲突的方式在不同版本的QML之间保持不变
- 其他旧版模块可能会修改或覆盖已安装的旧版模块提供的类型定义
定位的旧版模块
引擎将通过相对目录路径import语句导入的未识别模块作为定位的旧版模块加载。以下语义适用于定位的旧版模块:
- 它可以由客户通过相对导入路径导入
- 导入模块时,客户不必指定版本
- 如果客户端在import语句中未提供任何导入版本,则QML引擎不保证将导入给定类型名称的定义的哪个版本
- QML引擎可以任意解决冲突的类型名称,并且不能保证解决冲突的方式在不同版本的QML之间保持不变
- 其他旧版模块可能会修改或覆盖所定位的旧版模块提供的类型定义
定位的旧版模块可以驻留在本地文件系统上或网络上,并且可以由指定文件系统路径或网络URL的URL引用。
英文官方地址:https://doc.qt.io/qt-5/qtqml-modules-legacymodules.html