QML 模块在项目中的优势是啥?
Posted
技术标签:
【中文标题】QML 模块在项目中的优势是啥?【英文标题】:What are the advantages of QML modules inside a project?QML 模块在项目中的优势是什么? 【发布时间】:2018-03-01 16:35:56 【问题描述】:ASAIK 有两种方法可以使用 QML 创建/导入子文件夹:
使用亲属路径import "myQMLDir/mySubDir"
导入
在创建 qmldir 文件时导入模块 import myQMLDir.mySubDir 1.0
并将它们添加到 QtQuick 引擎的导入路径中。
第一个似乎要简单得多。第二个允许您对文件进行版本控制或从外部目录导入它们,但是当您在项目中使用它们时有用吗?
【问题讨论】:
【参考方案1】:根据我的经验,对于以下示例,我将始终使用 import MyModule 1.0
方法:
import MyModule 1.0
显然比路径导入更简单。示例:import "../../../someDir/nextDir/myModule"
重构:如果您决定将 MyModule 移动到另一个文件夹结构中,则必须更改所有使用此导入的 js/qml 文件的导入。您无需使用 import MyModule 1.0
方法执行此操作。
私有文件:当您为您的模块定义 qmldir 时,您可以定义其中包含哪些 qml/js 文件。使用相对路径导入包含所有 qml/js 文件。
【讨论】:
好点。关于第一个,然后您需要将每个包含模块的单个添加到 import-path 对吗?否则还需要在导入import SomeDir.NextDir.MyModule 1.0
中指定路径。
您只需将导入路径添加到您的模块一次。在您的 .pro 文件中:QML_IMPORT_PATH += path/to/your/module
然后您可以在项目中的任何地方简单地使用 import MyModule 1.0
以上是关于QML 模块在项目中的优势是啥?的主要内容,如果未能解决你的问题,请参考以下文章
QML 文件中有很多项目的 Component.onCompleted 的顺序是啥?