【问题标题】: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 引擎的导入路径中。

第一个似乎要简单得多。第二个允许您对文件进行版本控制或从外部目录导入它们,但是当您在项目中使用它们时有用吗?

【问题讨论】:

    标签: qt qml


    【解决方案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
    猜你喜欢
    • 2012-09-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    • 2015-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-18
    相关资源
    最近更新 更多