对于一个项目,我在表格中显示数据,最新的数据是最相关的,所以我希望它是最明显的,但也应该可以看到较早的数据。
以下代码包含带有滚动条的视图:
ScrollView{
id:dataScrollView
width: parent.width
anchors.top: headerWrapper.bottom
height:parent.height - headerWrapper.height
ScrollBar.vertical.policy: ScrollBar.AlwaysOn;
clip: true
TableView{
id: table
columnSpacing: 1
rowSpacing: 1
clip: true
implicitHeight: column.height - 33
implicitWidth: column.width
model: modelItem
delegate: compColored
onContentHeightChanged: {
//new data has come in I want to scroll to the bottom
console.log("update scroll to bottom" )
}
}
}
我确切知道代码应该放在哪里,但我不知道如何让滚动条转到底部或如何设置滚动条的位置。
如何设置滚动条的位置?
由于
TableView
继承了 Flickable
,您只需通过以下方式即可在视口中重新定位 contentItem:
onContentHeightChanged: {
table.contentY = table.contentHeight - table.height
}
Flickable 的 contentItem 底部区域将在视口中可见。
在Qt6中,最简单的解决方案是这样的:
TableView {
...
onRowsChanged: {
positionViewAtRow(rows - 1, TableView.AlignVCenter)
}
}