首页 > 解决方案 > CLion 中的 Qt5 QML - QQmlApplicationEngine 无法加载组件

问题描述

我在尝试让 Qt .qml 环境在 CLion 中工作时遇到错误,因为我真的不想使用 QtCreator:

QQmlApplicationEngine failed to load component
qrc:/main.qml:2:1: module "QtQuick.Window" is not installed
qrc:/main.qml:1:1: module "QtQuick" is not installed
qrc:/main.qml:2:1: module "QtQuick.Window" is not installed
qrc:/main.qml:1:1: module "QtQuick" is not installed

不知道发生了什么,做了一个巨大的研究,我还没有发现任何东西。我尝试运行的 QML 文件是:

import QtQuick 2.12
import QtQuick.Window 2.12

Window {
    width: 640
    height: 480
    visible: true
    title: qsTr("Hello World")
}

资源.qrc:

<RCC>
    <qresource>
        <file>main.qml</file>
    </qresource>
</RCC>

CMakeLists.txt: https ://gist.github.com/zmatez/52d7a552d10d82beed8d86783b1322eb

CMake 选项:

-DCMAKE_PREFIX_PATH="E:/ProgramFiles/qt/5.15.2/mingw81_64/lib/cmake/Qt5"

main.cpp:https ://gist.github.com/zmatez/52d7a552d10d82beed8d86783b1322eb

我将它与 QtCreator 的自动生成代码进行比较,我的几乎与创建者的代码相同。此外,在我当前的配置中,QtWidgets 应用程序在 CLion 中运行良好。

谢谢你的帮助

标签: qtcmakeqmlclion

解决方案


我遇到了同样的问题。感谢@folibis上面的评论,我的问题得到了解决。按照他的建议,我只需要添加一个环境变量QML2_IMPORT_PATH并将其值设置为%QTDIR%\qml.

就我而言,它不是 CLion。这是一个使用 Qt Widgets for UI 的现有项目。它将改为使用 QML。在识别 QtQuick 模块时给我带来了各种各样的麻烦。我尝试了很多东西,但没有任何效果,但这个技巧就像一个魅力。


推荐阅读