使用 QML 模块和插件
QML 模块 可以使用 C++ 插件 将在 C++ 中定义的组件暴露给 Qt Quick 应用程序。
要创建一个 QML 模块
- 创建自定义组件,并将所有
.qml
文件放置在与您的模块相关的目录中。例如,imports\asset_imports
。 - 对于 Qt Quick UI 原型项目 (.qmlproject),在包含模块的应用程序的 .qmlproject 文件中,指定具有模块的目录的路径,作为
importPaths
变量的值。例如,importPaths: [ "imports", "asset_imports" ]
。 - 为您的模块创建一个
qmldir
文件并将其放置在模块目录中。有关更多信息,请参阅 模块定义 qmldir 文件。 - 在您的模块目录中创建一个名为
designer
的目录。 - 为您的模块创建一个
.metainfo
文件并将其放置在designer
目录中。可以作为示例使用 Qt 附带的 metainfo 文件,如qtquickcontrols2.metainfo
。 - 按 导入 QML 模块 的说明,将模块导入到项目中。
注意:如果 Qt Creator 查找不到新的 QML 模块,则构建项目,然后转到 工具 > QML/JS > 重置代码模型 以重置代码模型。
使用 Qt 6.1 或更早版本进行开发
从 Qt 6.2 开始,CMake 自动生成 qmltypes
和 qmldir
文件。
生成类型描述文件
在 注册 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公司有限公司。此处包含的文档贡献的版权属于各自的所有者。提供的文档根据自由软件基金会发布的