【问题标题】:Why is QML ScrollView not available in QtQuick.Controls 2.0?为什么 QtQuick.Controls 2.0 中没有 QML ScrollView?
【发布时间】:2016-07-21 15:42:24
【问题描述】:

我有以下 QML,并尝试在 ListView 周围添加 ScrollView:

import QtQuick 2.7
import QtQuick.Controls 2.0 // Works if 1.4 is specified
import QtQuick.Layouts 1.0

Item {
    width: 600
    height: 400
    property alias textOutput_listView: textOutput_listView
    property alias doOffsetGainCal_button: doOffsetGainCal_button

    Button {
        id: doOffsetGainCal_button
        x: 40
        y: 38
        text: "Do Offset/Gain Cal"
    }

    ScrollView {
        ListView {
            id: textOutput_listView
            x: 40
            y: 99
            width: 300
            height: 256

            model: textOutputListModel
            delegate:  Rectangle {
                x: 0
                y: 0
                width: 100
                height:18
                Text { text: modelData }
            }

            Rectangle {
                id: rectangle2
                color: "#ffffffff"
                visible: true
                z: 1
                anchors.fill: parent
                border.color: "#7d7d7d"
                opacity: 0.2
            }
        }
    }
}

但是,如果我导入 QtQuick.Controls 2.0,则 ScrollView 会报告为“不是类型”。如果我导入 1.4 就可以了。

谷歌搜索并未表明 ScrollView 已被弃用或替换。

我期望 QML 组件的版本取代旧的组件是错误的 - 这意味着我应该导入 2.0 和 1.4 吗?

【问题讨论】:

  • 谷歌搜索错误:见here。引入新控件的要点是提供 LIGHTWEIGHT 控件。查看链接页面,简要介绍两个模块之间的区别。
  • @BaCaRoZzo - 谢谢。该页面同时包含“Scrollview”和“replaced”,但不在这两个术语的 Google 结果的前五页中。这对我来说似乎很奇怪。
  • @SteveFallows 我只是在猜测,但这可能是因为它相当新?或者也许 qt.io 做错了什么。我不知道。我经常使用 Google 来查看参考页面,而且很多时候,即使是已经存在了一段时间的内容也不会出现在页面顶部。

标签: qt qml qtquickcontrols2


【解决方案1】:

ScrollView 已在 Qt Quick Controls 2.2 中的Qt 5.9 中引入。它在触摸时提供轻弹和非交互式滚动指示器,并在与鼠标指针交互时切换到交互式滚动条并禁用轻弹。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-29
    • 2020-10-19
    • 2013-05-04
    • 1970-01-01
    相关资源
    最近更新 更多