ScrollView
将其所有内容剪辑为其大小。它是否可以使它只适用于顶部和底部,但允许孩子走出右侧和左侧的父母框架?
答案 0 :(得分:0)
我只能想象一个原因,为什么你不将ScrollView
的宽度设置为更高的值(contentItem
的宽度)。< / p>
为了能够这样做,虽然不限制ScrollView
的宽度,你可以使用一个简单的技巧:
Item {
id: limitedWidthItemToAnchorTo
width: 200 // the width the ScrollView was supposed to have
height: 400
ScrollView {
width: contentItem.width + __verticalScrollBar.width// Don't limit the width.
height: 400 // Limit only the height.
horizontalScrollBarPolicy: Qt.ScrollBarAlwaysOff // You don't need them.
contentItem: Rectangle {
width: 700 // This will set the ScrollViews width.
height: 600 // The height will be clipped by the ScrollView.
// You can scroll though.
gradient: Gradient {
GradientStop { position: 0; color: 'red' }
GradientStop { position: 1; color: 'blue' }
}
border.width: 10
}
}
}
你将它包裹在Item
中,锚定到此,你就会变得更好。
或者你也可以使用面具,但这会更复杂。
本身不能仅剪辑水平或垂直,因为剪辑是使用Item
的边界框完成的。
答案 1 :(得分:0)
如果你想要的只是向一个方向滚动,那么只需使用属性绑定将内容项的宽度/高度设置为ScrollView的宽度/高度(因为ScrollView中的项目被重新设置为ScrollView.contentItem) 。以下示例仅垂直滚动。如果您需要确认它确实有效,我已对其进行了测试。
Item {
ScrollView {
id: scrollview1
anchors.fill: parent
anchors.margins: 20
clip: true
ColumnLayout {
width: scrollview1.width
}
}
}