找不到自定义QML模块

时间:2019-05-28 17:41:01

标签: qt qml qt5

我有一个QML应用程序。我创建了自己的QML模块。称为MyCustomModule。该模块具有适当的qmldir文件,该文件已注册到相应的my_custom_module.qrc文件中。在C ++中启动应用程序时,我还使用addImportPath("qrc:///my_custom_module");添加了导入路径。我使用的是CMake而不是QMake。

我在任何地方导入MyCustomModule的QtCreator都告诉我QML module not found,但是当我构建应用程序时,构建过程没有任何问题并且可以运行。

我想念什么吗?

1 个答案:

答案 0 :(得分:0)

我的问题是我的CMake文件中缺少QML_IMPORT_PATH。示例:

# Make Qt Creator aware of where the QML modules live
set (_QML_IMPORT_PATHS "")

## Add new module paths here.
list (APPEND _QML_IMPORT_PATHS ${CMAKE_CURRENT_SOURCE_DIR}/path/to/your/module)

set (
    QML_IMPORT_PATH
    ${_QML_IMPORT_PATHS}
    CACHE
    STRING
    "Path used to locate CMake modules by Qt Creator"
    FORCE
)

一个重要的旁注是${CMAKE_CURRENT_SOURCE_DIR}/path/to/your/module应该指向模块所在的文件夹,而不是模块文件夹本身。因此,如果您有这样的路径: /path/to/your/module/MyCustomModule,CMake应该包含路径/path/to/your/module