QML滚动视图不允许滚动其内容

时间:2018-09-15 16:02:40

标签: qt qml

我需要创建动态添加到屏幕区域的组件,这些组件当然需要滚动。我发现,无论使用滚动条作为父级添加多少组件,滚动条都不会出现,并且该元素也不会滚动。

我有点摆弄,我想我想出了一个最小的例子来说明我在说什么:

import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.2

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    ScrollView {
        width: 200
        height: 200
        clip: true

        Label {
            text: "ABC"
            font.pixelSize: 224
        }

//        Rectangle {
//            color: "#ff0000"
//            width: 100
//            height: 100
//        }

    }
}

这是官方文档中使用的示例的修改版本。但是,当我取消对正方形的注释时,屏幕将不再滚动(滚动条永远不会出现)。

如果我删除标签并留下矩形(使其变大以便滚动到某个地方),它仍然不起作用。

我正在使用Qt 5.10。

1 个答案:

答案 0 :(得分:0)

所以下面的代码对我有用。我将矩形定义为背景,以将边框线添加到需要创建的可滚动表格中。

Rectangle {
    id: tableBackground
    color: "#ffffff"
    border.width: 2
    border.color: "#EDEDEE"
    radius: 4
    anchors.top: tableHeader.bottom
    anchors.left: tableHeader.left
    width: vmTableWidth
    height: vmTableHeight - tableHeader.height

    ScrollView {
        id: tableArea
        anchors.fill: parent
        clip: true
        ListView {
            id: patientListView
            anchors.fill: parent
            model: patientList
            delegate: VMPatientEntry {
                onFetchReport: {
                   // This is a signal emitted by my VMPatientEntry.
                }
            }
            onCurrentIndexChanged: {
                 // Do stuff when the current index changes.
            }
        }
    }
}

所以我希望这个答案也能使人也解决他们的问题。