【问题标题】:When using Editable ComboBox,I can NOT import QtQuick.Controls 2.2使用 Editable ComboBox 时,我无法导入 QtQuick.Controls 2.2
【发布时间】:2017-07-26 02:04:23
【问题描述】:

在QML Doc中,有以下内容:

进口声明:

import QtQuick.Controls 2.2

自:Qt 5.7

"ComboBox 可以被编辑。" ...

我安装了最新的 Qt OpenSource 5.9。但是我无法导入QtQuick.Controls 2.2,即使使用项目向导创建的最简单的qt快速项目。打印以下错误:

qrc:/main.qml:2 模块“QtQuick.Controls”2.2 版未安装

我的代码:

import QtQuick 2.7
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.3

ApplicationWindow {
...

main.cpp

#include <QGuiApplication>
#include <QQmlApplicationEngine>

int main(int argc, char *argv[])
{
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
    QGuiApplication app(argc, argv);

    QQmlApplicationEngine engine;
    engine.load(QUrl(QLatin1String("qrc:/main.qml")));
    if (engine.rootObjects().isEmpty())
        return -1;

    return app.exec();
}

所有代码均由 Qt Creator 4.3 生成

我在 Windows 7 上工作。

【问题讨论】:

  • 你能检查一下你是否安装了QtQuick.Controls 2。您可以通过遍历安装 Qt 的文件夹来检查这一点。例如,对我来说,Qt5.9.0\5.9\mingw53_32\qml\QtQuick\Controls.2 是存在 QtQuick.Controls 2.2 组件(如 ComboBox)的文件夹
  • 是的,我在C:\Qt\Qt5.9.0\5.9\msvc2015_64\qml\QtQuick\Controls.2下找到了ComboBox
  • 我刚刚发现我使用的是 5.8 套件,抱歉,谢谢。

标签: qt qml qtquick2 qtquickcontrols2


【解决方案1】:

如果你安装了QtQuick 2.7,你需要导入QtQuick.Controls 2.0。文档中的 import 语句有时会设置为最新版本。
这可能会发生,例如在较新版本中引入新属性时(请参阅acceptableInput

ComboBox 本身在Qt5.7 和相应的QtQuick.Controls 2.0 中可用,但在QtQuick.Controls 2.2 中添加了一些属性,Qt5.9 附带。

【讨论】:

  • 我需要 5.9 中添加的可编辑 ComboBox,所以我安装了 5.9 但仍然无法使用。
  • 我才发现我用的是5.8套件,抱歉。
  • QtQuick.Controls 2.2 可编辑组合框对我来说不能正常工作。 Accepted() 信号并非每次都正确发送。如果我改为导入 1.4 版,它确实可以正常工作。
  • @Colin:如果没有重现您问题的代码,我们将无法帮助您。考虑用一个最小的、完整的和可验证的例子来创建一个新的问题来重现你的问题。它可能会证明这是一个错误。然后您可以在bugreports.qt.io 上报告它 - 提供相同的示例。
  • @derM:我会这样做的。谢谢。
猜你喜欢
  • 1970-01-01
  • 2017-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-08
  • 2020-01-18
相关资源
最近更新 更多