Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 未找到自定义QML模块_Qt_Qml_Qt5 - Fatal编程技术网

Qt 未找到自定义QML模块

Qt 未找到自定义QML模块,qt,qml,qt5,Qt,Qml,Qt5,我有一个QML应用程序。我已经创建了自己的QML模块。调用了MyCustomModule。模块具有相应的qmldir文件,该文件已注册到相应的my_custom_module.qrc文件中。我还使用addImportPath(“qrc:///my_custom_module"); C++中的应用程序启动。我正在使用CMake而不是QMake 无论何时导入MyCustomModuleQtCreator都会告诉我QML模块未找到,但当我构建应用程序时,构建过程中不会出现任何问题并运行 我遗漏了什么吗

我有一个QML应用程序。我已经创建了自己的QML模块。调用了
MyCustomModule
。模块具有相应的
qmldir
文件,该文件已注册到相应的
my_custom_module.qrc
文件中。我还使用
addImportPath(“qrc:///my_custom_module"); C++中的应用程序启动。我正在使用CMake而不是QMake

无论何时导入
MyCustomModule
QtCreator都会告诉我
QML模块未找到
,但当我构建应用程序时,构建过程中不会出现任何问题并运行


我遗漏了什么吗?

我的问题是我的CMake文件中缺少了
QML\u导入路径。例如:

# 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\u CURRENT\u SOURCE\u DIR}/path/to/your/module
应该指向模块所在的文件夹,而不是模块文件夹本身。如果你有这样一条路径:
/path/to/your/module/MyCustomModule
,CMake应该包含路径
/path/to/your/module

您最好提供一些源代码,而不是解释它。我认为在这种情况下,源代码只是一条死胡同,只会转移人们对真实问题的注意力。正如我所说的,代码很好,因为它构建并运行。另一方面,我找到了将其作为答案添加的解决方案。