如何禁用ScrollView

时间:2017-05-15 08:39:13

标签: qt qml scrollview qtquick2

我为ScrollView使用ListView我有时需要将其停用

一个简单的例子就是这样:

ScrollView {
    id: scroll
    ListView {
        model: DelegateModel {
            id: visualModel
            model: myModel //Model is set in the cpp
            delegate: Rectangle {
                    ...
                Button {
                    onClicked { //Important part
                        scroll.flickableItem.interactive = false //It doesn't work 
                    }
                }
            }
        }
    }
}   

我该怎么办?

1 个答案:

答案 0 :(得分:1)

正如 dtech 所提到的,ListView有一个内置的Flickable因此要滚动,不需要ScrollView。您还可以使用以下内容将ScrollBar添加到ListView

ScrollBar.vertical: ScrollBar {}

但是,如果您需要使用ScrollView,那么您需要的是老式的外观,而且没有记录的方式。实际上,在使用QtQuick.Controls 1.x时,您必须经常使用Controls的未记录属性。

在这种特殊情况下,您可以设置属性:

__horizontalScrollBar.enabled: false
__verticalScrollBar.enabled: false
__wheelAreaScrollSpeed: 0

再次说明:这没有记录,可能会改变如果会有更新版本的QtQuick.Controls 1.x - 这不太可能,因为现在重点在于开发现代QtQuick.Controls 2.x1.x版本的记录的API 不兼容 - 版本