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 上的一个众所周知的错误。不幸的是,到目前为止,没有任何答案对我有用。我已经用尽了所有建议的补救措施,但没有任何改善。这些列举如下:
- 检查 Qt 与 QuickControls 的兼容性:我在 QtCreator 和 QtCreator 4.11.0 中使用
Qt 5.12.8
。我使用 sudo apt install qt5 default
和 sudo apt-get install qtcreator
安装了 Qt。根据文档(见here,Qt 5.12直接兼容QtQuick 2.12:
- 检查我是否将 QtQuick 指定为依赖项:在我的
.pro
文件中,我添加了 QT += quick qml quickcontrols2
- 检查我是否有正确的库:我有
qtquickcontrols2-5-dev
、qt5declarative5-dev
和 qml-module-qtquick-controls
。此外,apt-cache search qtquick
告诉我所有的 qtquick 模块都在那里
- 重新安装qtcreator: 有问题建议重新安装QtCreator。这个我试过了,没效果
- QML 仿真层:我已将我的项目配置为“使用使用所选 Qt 构建的 QML 仿真层”。但是,这也没有效果
执行了这些步骤中的每一个步骤,并用尽了与该主题相关的所有 Whosebug 问题和 Github 线程,我仍然找不到导致此问题的原因。
我还包括了一些我试过的相关问题。问题 4 可能是最接近我的问题,但已通过我未使用的 Yocto 构建系统解决:
- 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/Controls
和 QML2_IMPORT_PATH/QtQuick/Controls.2
(请参阅 version semantics documentation ).如果在这些文件夹中它找到一个 qmldir
文件,它将解析它并查找任何至少有 2 个作为主要部分和小于或等于 12 作为次要部分的组件(尽管这个特定的 qmldir 没有说明任何组件...它可能还会读取 libqtquickcontrols2plugin.so 或 plugin.qmltypes)
我的 Qt 应用程序无法启动,出现以下错误:
module "QtQuick.Controls" version 2.12 is not installed
我的平台是Ubuntu 20.04.2 LTS
。这是 Whosebug 上的一个众所周知的错误。不幸的是,到目前为止,没有任何答案对我有用。我已经用尽了所有建议的补救措施,但没有任何改善。这些列举如下:
- 检查 Qt 与 QuickControls 的兼容性:我在 QtCreator 和 QtCreator 4.11.0 中使用
Qt 5.12.8
。我使用sudo apt install qt5 default
和sudo apt-get install qtcreator
安装了 Qt。根据文档(见here,Qt 5.12直接兼容QtQuick 2.12: - 检查我是否将 QtQuick 指定为依赖项:在我的
.pro
文件中,我添加了QT += quick qml quickcontrols2
- 检查我是否有正确的库:我有
qtquickcontrols2-5-dev
、qt5declarative5-dev
和qml-module-qtquick-controls
。此外,apt-cache search qtquick
告诉我所有的 qtquick 模块都在那里 - 重新安装qtcreator: 有问题建议重新安装QtCreator。这个我试过了,没效果
- QML 仿真层:我已将我的项目配置为“使用使用所选 Qt 构建的 QML 仿真层”。但是,这也没有效果
执行了这些步骤中的每一个步骤,并用尽了与该主题相关的所有 Whosebug 问题和 Github 线程,我仍然找不到导致此问题的原因。
我还包括了一些我试过的相关问题。问题 4 可能是最接近我的问题,但已通过我未使用的 Yocto 构建系统解决:
- 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/Controls
和 QML2_IMPORT_PATH/QtQuick/Controls.2
(请参阅 version semantics documentation ).如果在这些文件夹中它找到一个 qmldir
文件,它将解析它并查找任何至少有 2 个作为主要部分和小于或等于 12 作为次要部分的组件(尽管这个特定的 qmldir 没有说明任何组件...它可能还会读取 libqtquickcontrols2plugin.so 或 plugin.qmltypes)