使用 QML 模块和插件

QML 模块 可以使用 C++ 插件 将在 C++ 中定义的组件暴露给 Qt Quick 应用程序。

要创建一个 QML 模块

  1. 创建自定义组件,并将所有 .qml 文件放置在与您的模块相关的目录中。例如,imports\asset_imports
  2. 对于 Qt Quick UI 原型项目 (.qmlproject),在包含模块的应用程序的 .qmlproject 文件中,指定具有模块的目录的路径,作为 importPaths 变量的值。例如,importPaths: [ "imports", "asset_imports" ]
  3. 为您的模块创建一个 qmldir 文件并将其放置在模块目录中。有关更多信息,请参阅 模块定义 qmldir 文件
  4. 在您的模块目录中创建一个名为 designer 的目录。
  5. 为您的模块创建一个 .metainfo 文件并将其放置在 designer 目录中。可以作为示例使用 Qt 附带的 metainfo 文件,如 qtquickcontrols2.metainfo
  6. 导入 QML 模块 的说明,将模块导入到项目中。

注意:如果 Qt Creator 查找不到新的 QML 模块,则构建项目,然后转到 工具 > QML/JS > 重置代码模型 以重置代码模型。

使用 Qt 6.1 或更早版本进行开发

从 Qt 6.2 开始,CMake 自动生成 qmltypesqmldir 文件。

生成类型描述文件

注册 QML 类型 时,请确保 QML 模块具有 plugins.qmltypes 文件。理想情况下,它应位于与 qmldir 文件相同的目录中。该 qmltypes 文件描述了由模块的插件导出的组件,并在导入模块时由 Qt Creator 加载。

更多信息,请参见类型描述文件

自动导出插件

如果具有插件的模块缺少qmltypes文件,Qt Creator将尝试通过在后台运行qmldump程序来生成一个临时文件。然而,这种自动导出是一个回退机制,它有很多失败点,您不能依赖于它。

导入QML模块

默认情况下,Qt Creator将在Qt的QML导入路径中查找QML模块。

如果您使用qmake,并且您的应用程序添加了Qt Creator应该使用的其他导入路径,请使用QML_IMPORT_PATH在您的应用程序的.pro文件中指定它们: QML_IMPORT_PATH += path/to/module

如果您使用CMake,请将以下命令添加到CMakeLists.txt文件中以设置QML导入路径

set(QML_IMPORT_PATH ${CMAKE_SOURCE_DIR}/qml ${CMAKE_BINARY_DIR}/imports CACHE STRING "" FORCE)

导入路径会影响CMake项目构建的所有目标。

参见重置代码模型

©2024年Qt公司有限公司。此处包含的文档贡献的版权属于各自的所有者。提供的文档根据自由软件基金会发布的GNU自由文档许可协议版本1.3的条款进行许可。Qt及其相关标志是芬兰的Qt公司以及/或其他国家的商标。所有其他商标均为各自所有者的财产。