QT5: QTQuick.Controls 找不到版本 2.12

QT5: QTQuick.Controls version 2.12 is not found

我的 Qt 应用程序无法启动,出现以下错误: module "QtQuick.Controls" version 2.12 is not installed

我的平台是Ubuntu 20.04.2 LTS。这是 Whosebug 上的一个众所周知的错误。不幸的是,到目前为止,没有任何答案对我有用。我已经用尽了所有建议的补救措施,但没有任何改善。这些列举如下:

  1. 检查 Qt 与 QuickControls 的兼容性:我在 QtCreator 和 QtCreator 4.11.0 中使用 Qt 5.12.8。我使用 sudo apt install qt5 defaultsudo apt-get install qtcreator 安装了 Qt。根据文档(见here,Qt 5.12直接兼容QtQuick 2.12:
  2. 检查我是否将 QtQuick 指定为依赖项:在我的 .pro 文件中,我添加了 QT += quick qml quickcontrols2
  3. 检查我是否有正确的库:我有 qtquickcontrols2-5-devqt5declarative5-devqml-module-qtquick-controls。此外,apt-cache search qtquick 告诉我所有的 qtquick 模块都在那里
  4. 重新安装qtcreator: 有问题建议重新安装QtCreator。这个我试过了,没效果
  5. QML 仿真层:我已将我的项目配置为“使用使用所选 Qt 构建的 QML 仿真层”。但是,这也没有效果

执行了这些步骤中的每一个步骤,并用尽了与该主题相关的所有 Whosebug 问题和 Github 线程,我仍然找不到导致此问题的原因。


我还包括了一些我试过的相关问题。问题 4 可能是最接近我的问题,但已通过我未使用的 Yocto 构建系统解决:

  1. import QtQuick.Controls 2.1 QML MODULE NOT FOUND

我将非常感谢任何有关进一步解决此问题的建议。

您缺少控件 2 的 qml 模块,因为您安装的是 qml-module-qtquick-controls 而不是 qml-module-qtquick-controls2

QML 引擎将通过遵循命名空间在 QML2_IMPORT_PATH 的路径内查找模块,因此在本例中为 QML2_IMPORT_PATH/QtQuick/ControlsQML2_IMPORT_PATH/QtQuick/Controls.2(请参阅 version semantics documentation ).如果在这些文件夹中它找到一个 qmldir 文件,它将解析它并查找任何至少有 2 个作为主要部分和小于或等于 12 作为次要部分的组件(尽管这个特定的 qmldir 没有说明任何组件...它可能还会读取 libqtquickcontrols2plugin.so 或 plugin.qmltypes)