如何禁用滚动视图
How to disable ScrollView
我为我的 ListView
使用 ScrollView
,但 我有时需要禁用它。
一个简单的案例是这样的:
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
}
}
}
}
}
}
我该如何继续?
正如 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.x
的发展,它与 1.x
版本
的 记录的 API 不兼容
我为我的 ListView
使用 ScrollView
,但 我有时需要禁用它。
一个简单的案例是这样的:
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
}
}
}
}
}
}
我该如何继续?
正如 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.x
的发展,它与 1.x
版本