如何在 Ubuntu 上安装 QtQuick.Controls 1.4?

Posted

技术标签:

【中文标题】如何在 Ubuntu 上安装 QtQuick.Controls 1.4?【英文标题】:How to install QtQuick.Controls 1.4 on Ubuntu? 【发布时间】:2015-08-25 12:34:00 【问题描述】:

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

【问题讨论】:

谢谢。在 3 个不同的目录中找到 ~/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 我应该将哪个添加到路径中? @VictorPolevoy 等等...你真的尝试运行一个使用 1.4 版本控件的示例吗? 老兄,这么多例子,你怎么知道哪一个用的是1.4版本。不管怎样,我找到了一个。虽然 qt creator 不断警告TreeView 未找到组件,但它可以工作。谢谢@Mitch 【参考方案1】:

你应该已经拥有它了。尝试使用定位TreeView.qml 查找TreeView.qml。此外,QtCreator 或您的 IDE 应该有正确的QML_IMPORT_PATH,它取自环境。例如,我的QtCreator 没有设置正确的路径,所以我将它与设置路径并在之后运行/usr/bin/qtcreator 的shell 脚本一起使用——这使得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 并放入其中:

#!/bin/bash

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

请务必将/home/user 更改为您的主目录。

【讨论】:

所以,我将QML_IMPORT_PATH = /home/zen/Qt5.5.0/5.5/gcc_64/qml 添加到我的.pro 文件中。但这不起作用。我应该在哪里设置路径变量? @Zen 这也是一个环境变量。将其设置为此路径并在此之后在同一 tty 中运行 qtcreator。我也无法通过修改 .pro 文件来使用新的 qml 组件——这就是我制作 shell 脚本的原因。几个小时后我可能会给你详细信息。 可能是 qt creator 有问题。设置环境变量并没有什么不同。我发现我可以导入 1.4 版本,虽然 qt creator 一直警告TreeView 未找到组件,但它可以工作。 @Zen 我今晚会检查一下。也许它对我的工作方式相同,我不确定。我会尽快通知你的。 @Zen 上帝,没时间做这个。也许这个晚上。另外,如果您使用来自~/Qt5.5.0/Tools/QtCreator/bin/ 目录的 qtcreator 怎么办?在这种情况下可以正常工作吗?【参考方案2】:

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

见Import Statements | Qt QML

【讨论】:

Qt 创建者仍然警告TreeView 未知。 您可以尝试在项目配置中定义QML2_IMPORT_PATH:项目->构建并运行->->运行->运行环境->详细信息->添加添加QML2_IMPORT_PATH 并将值设置为 /home/zen/Qt5.5.0/5.5/gcc_64/qml 你构建并安装了 Qt5.5 吗?如果您的设置没问题,那么一切都应该可以解决。一旦安装了 Qt5.5,您就可以在 QtCreator 中添加新安装的版本并创建一个新工具包。配置您的项目以使用您为 Qt5.5 创建的工具包。 谢谢,我稍后试试。顺便说一句,你能告诉我这是否会导致内存泄漏吗?我有一个列表视图,它的宽度绑定到这个函数function calcWidth() var w = 0; for(var i in list.contentItem.children) var child = list.contentItem.children[i]; w+=child.width; return w 好吧,我认为这不会导致内存泄漏。【参考方案3】:

另一个相当难看的解决方案是从gcc/qml/QtQuick/Controls 编辑qmldir 文件并添加以下行:

TreeView 1.4 TreeView.qml

结果对我来说:

module QtQuick.Controls
plugin qtquickcontrolsplugin
classname QtQuickControlsPlugin
typeinfo plugins.qmltypes
designersupported
depends QtQuick.Window 2.2 
TreeView 1.4 TreeView.qml

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

这样,TreeView 和您将添加到此文件的所有其他 QML 类型将被 QtCreator 识别。

见http://doc.qt.io/qt-5/qtqml-modules-qmldir.html

【讨论】:

以上是关于如何在 Ubuntu 上安装 QtQuick.Controls 1.4?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Ubuntu 14.04上安装Wine

如何在vmware上安装ubuntu

如何在Ubuntu 14.04 LTS上安装MariaDB

如何检查一个包是不是已经安装在 ubuntu 上?

如何在ubuntu上安装gnome

如何在ubuntu上安装gnome