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 中截取特定项目的屏幕截图的方法是啥?

项目错误:QT 中的未知模块:qml quick

QML 文件中有很多项目的 Component.onCompleted 的顺序是啥?

QML 中的 QMessageBox::aboutQt 等价物是啥?

qml-自定义quick模块

QML——添加自定义模块