QML模块未找到错误

时间:2012-08-17 20:08:11

标签: qt-creator qml

使用QtCreator时,我在编辑器中显示qml文件。 qml文件用于名为main.qml的文件,它是一个插件。

然后我点击Design按钮。它显示错误消息:QML module not found

如果我使用Go to error链接,则会转到包含以下import com.name.os.app.all 1.0的行。这是插件所需的各种组件qml文件的位置。

我已将路径c:\users\me\ui\viewer\添加到我的QML_IMPORT_PATH env变量中。如果QtCreater将qml文件import语句中的com.name...附加到我添加到QML_IMPORT_PATH的路径名,它将找到所需的目录。它没有。

该项目使用qmake。

我尝试使用qmlplugindump.exe为我的主qml视图容器文件生成qmltypes文件,但是qmlplugindump.exe错误地说明了component is not ready和{{1} }}

我使用的命令是file::///c:/Users/name/ui/viewer/modules/app/qml/com/name/os/app/all/typelist.qml:2:1 module MyViewContainer.qml is not installed

4 个答案:

答案 0 :(得分:1)

您是否已完全测试此插件?我问这个是因为我写了很多插件并多次遇到这个问题。 可能的问题包括您正在使用的Qt版本,以及插件uri / classname中的某种形式的命名错误。

我有一个应用程序,我为多个版本的Qt构建,似乎qmlplugindump工具具有不同的有效性级别。

很抱歉这么一般,但希望它指出你正确的方向。

答案 1 :(得分:1)

在QtCreator中,执行"项目清理",然后重建。该模块将被找到。

我遇到了同样的问题,偶然发现了你的问题。经过一番努力,"清洁"和重建工作。

似乎有一个&#34;不完全依赖检查&#34;在构建过程中,了解&#34;了解&#34;需要重建main.cpp,然后展示qmlRegisterType<MyType>(),以便在main.qml内找到它。

答案 2 :(得分:1)

此错误破坏了我的生活
“未找到QML模块错误”的实际解决方案
假设您在这样的目录中是否有插件,其中包含qmldir  "myproject/modules/mymodule/blabla.qmldir"
您需要在“ .pro”文件中导入这样的父目录:

QML_IMPORT_PATH += $$PWD/modules

不喜欢这样(这将无法工作):
QML_IMPORT_PATH += $$PWD/modules/mymodule
// ---------------------------------------------
旁注:
这也会在qml的其他部分发生,例如 qmlplugindump ,您需要给父目录指定的文件夹不正确! 但是 windeployqt 正在使用确切的文件夹

例如:

qmlplugindump KiMa 1.0 C:\Users\Administrator\Documents\DynamicView\3rdparty > C:\Users\Administrator\Documents\DynamicView\3rdparty\KiMa\KiMa.qmltypes

// ---------------------------------------------
第二个最重要的部分是 QML仿真层
在Qt Creator中转到工具->选项-> Qt Quick-> Qt Quick Designer
选择“ 使用由所选qt构建的Qml仿真层
如果已选择,请查看“顶级构建路径”下的文本框
它应该引用Qt版本bin目录,该目录应该与插件Qt version相同:

..\5.12.1\msvc2017\bin    

对我来说:(它应该与工具包和blabla使用的版本相同)

C:\QtN\5.12.1\msvc2017\bin  

不应该是这样的:

C:\Users\Administrator\AppData\Roaming\QtProject\qtcreator\qmlpuppet 


在插件中添加新项后不要忘记部署(cmd命令):

windeployqt --qmldir C:\Users\Administrator\Documents\DynamicView C:\Users\Administrator\Documents\build-DynamicView-5_12-Debug\debug

和插件转储:

qmlplugindump KiMa 1.0 C:\Users\Administrator\Documents\DynamicView\3rdparty > C:\Users\Administrator\Documents\DynamicView\3rdparty\KiMa\KiMa.qmltypes  

在这之后,如果QtCreator为插件中的新对象提供了错误,则需要重新启动QtCreator!

如果仍然有问题,则需要-清理所有-运行Qmake-重建所有解决了很多问题的东西。

答案 3 :(得分:0)

经过两天的谷歌搜索和头痛之后,由于有了@MoreMag,我终于解决了!我只是在这里写下一些要点,希望对大家有帮助! ?

问题:

problem-found not working imports file

解决方案:

①转到工具-> 选项-> Qt Quick -> QML仿真层

>

②检查使用由所选Qt构建的QML仿真层

③单击浏览按钮,选择Qt建筑环境bin文件夹。路径采用 D:\ Qt \ 5.15.2 \ msvc2019_64 \ bin 的形式。在这里,我正在使用msvc2019 64位构建环境。

④单击应用按钮,然后重新启动Qt创建器。 完成!

solution

Qt Creator document says

在设计模式下,使用QML仿真层(也称为QML Puppet)来渲染和预览图像以及收集数据。为了能够从QML模块正确呈现自定义类型,必须使用与QML模块相同的Qt版本构建仿真层。 默认情况下,Qt Creator提供了一个后备仿真层,并使用与Qt Creator相同的Qt版本进行构建。因此,您的QML模块几乎无法立即使用。

我猜这个问题是由默认QML仿真层可能与某些QML模块不兼容引起的。就我而言,它是QtMultimedia模块。