关于qt:如何在Ubuntu上安装QtQuick.Controls 1.4?

How to install QtQuick.Controls 1.4 on Ubuntu?

我已经安装了最新的Qt 5.5.0,但似乎只有QtQuick.Controls 1.0和1.1。我想使用TreeView,它包含在1.4版本中。


您应该已经拥有它。尝试使用定位TreeView.qml查找TreeView.qml。另外,QtCreator或您的IDE应该具有从环境中获取的正确的QML_IMPORT_PATH。例如,我的QtCreator没有设置正确的路径,因此我将其与shell脚本一起使用,该脚本会设置路径并在之后运行/usr/bin/qtcreator-这使QtCreator能够查看新的QML模块。我不知道这是一个错误还是只是一个Ubuntu软件包问题,但仅当我手动设置QML_IMPORT_PATH时,它才对我有用。

您说您具有以下路径:

~/Qt5.5.0/5.5/Src/qtquickcontrols/src/controls/TreeView.qml

~/Qt5.5.0/5.5/gcc_64/qml/QtQuick/Controls/TreeView.qml

~/Qt5.5.0/Tools/QtCreator/bin/qml/QtQuick/Controls/TreeView.qml

好像您是通过从Qt的站点下载官方安装程序进行安装的。因此,第一个路径是源路径。永远不要使用它,只需要在从源代码编译Qt并执行make install

之后,将其安装到正确的目录中即可。

第三个与您的QtCreator安装集成在一起,但似乎对您不起作用。

我想说的是,您的选择是使用第二条路径(~/Qt5.5.0/5.5/gcc_64/qml/QtQuick/Controls/TreeView.qml)。通常,它会自动安装到amd64架构上的/usr/lib/x86_64-linux-gnu/qt5/上,而对于i386架构自动安装到/usr/lib/i386-linux-gnu/上。

因此,在/usr/bin/中创建一个脚本,例如将其命名为dev-qtcr并将其放入其中:

1
2
3
4
#!/bin/bash

export QML_IMPORT_PATH=/home/user/Qt5.5.0/5.5/gcc_64/qml
qtcreator

请确保将/home/user更改为您的主目录。


您是否尝试导出QML2_IMPORT_PATH而不是QML_IMPORT_PATH

请参阅导入声明| Qt QML


另一个很丑陋的解决方案是从gcc/qml/QtQuick/Controls编辑qmldir文件并添加以下行:

TreeView 1.4 TreeView.qml

对我来说:

1
2
3
4
5
6
7
module QtQuick.Controls
plugin qtquickcontrolsplugin
classname QtQuickControlsPlugin
typeinfo plugins.qmltypes
designersupported
depends QtQuick.Window 2.2
TreeView 1.4 TreeView.qml

您可以对QtQuick/Controls目录中的每个QML文件执行此操作。

通过这种方式,QtCreator可以识别TreeView和您将添加到此文件的所有其他QML类型。

请参阅http://doc.qt.io/qt-5/qtqml-modules-qmldir.html