Qt 项目中QML模块的优点是什么?

Qt 项目中QML模块的优点是什么?,qt,qml,Qt,Qml,ASAIK使用QML创建/导入子文件夹有两种方法: 使用相关路径导入导入“myQMLDir/mySubDir” 导入模块Import myQMLDir.mySubDir 1.0,同时创建qmldir文件并将其添加到QtQuick引擎的导入路径 第一个似乎要简单得多。第二种方法允许您对文件进行版本设置或从外部目录导入文件,但当您在项目中使用它们时,它是否有用?根据我的经验,对于以下示例,我始终使用导入MyModule 1.0方法: 可读性:导入MyModule 1.0显然比路径导入更简单。示

ASAIK使用QML创建/导入子文件夹有两种方法:

  • 使用相关路径导入
    导入“myQMLDir/mySubDir”
  • 导入模块
    Import myQMLDir.mySubDir 1.0
    ,同时创建qmldir文件并将其添加到QtQuick引擎的导入路径

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

根据我的经验,对于以下示例,我始终使用
导入MyModule 1.0
方法:

  • 可读性
    导入MyModule 1.0
    显然比路径导入更简单。示例:
    import.../../someDir/nextDir/myModule“
  • 重构:如果决定将MyModule移动到另一个文件夹结构中,则必须更改使用此导入的所有js/qml文件的导入。您不需要使用
    导入MyModule 1.0
    方法来实现这一点
  • 私有文件:为模块定义qmldir时,可以定义其中包含哪些qml/js文件。使用相对路径导入将包含所有qml/js文件

好的观点。关于第一个,您需要添加到每个包含模块的导入路径,对吗?否则,您还需要在导入
import SomeDir.NextDir.MyModule 1.0
中指定路径。只需将导入路径添加到模块中一次。在.pro文件中:
QML\u IMPORT\u PATH+=PATH/to/your/module
然后您可以在项目中的任何地方使用
IMPORT MyModule 1.0