list滚动条Scroll偏移和长度计算公式总结list滚动条Scroll 偏移和长度计算公式总结
A.计算偏移:
偏移/list窗⼝⾼度 = ⽬前总偏移/所有listitem⾼度总和
即:
偏移 = (⽬前总偏移 * list窗⼝⾼度 ) / 所有listitem⾼度总和
B.计算Scroll拇指⾼度
所有listitem⾼度总和 / list窗⼝⾼度 = pageCnt
Scroll拇指⾼度 = list窗⼝⾼度 / pageCnt
即:
Scroll拇指⾼度 = (list窗⼝⾼度 * list窗⼝⾼度) / 所有listitem⾼度总和
import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.3
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Rectangle {
id: frame
clip: true
width: 640
height: 160
ListModel {
id:contactModel
ListElement {
name: "Bill Smith"
number: "555 3264"
}
ListElement {
name: "John Brown"
number: "555 8426"
}
ListElement {
name: "Sam Wise"
number: "555 0473"
}
}
ListView {
id:content
width: 640
height: 200
model: contactModel
delegate: Text {
text: name + ": " + number
}
}
ScrollBar {
id: vbar
hoverEnabled: true
active: hovered || pressed
orientation: Qt.Vertical
size: frame.height / content.height
anchors.right: parent.right
滚动条变短是什么原因anchors.bottom: parent.bottom
contentItem: Image {
source:"./滑动杆.png"
}
}
// ScrollBar {
// id: hbar
// hoverEnabled: true
// active: hovered || pressed
/
/ orientation: Qt.Horizontal
// size: frame.width / content.width
// anchors.left: parent.left
// anchors.right: parent.right
// anchors.bottom: parent.bottom
// }
}
Button{
id:test_button
x:0
y:0
onClicked: {
contactModel.append({"name": "123123123", "number":"Jackfruit"});
content.height = unt *5
}
}
}
其中ScrollBar的size可以控制ScrollBar的⼤⼩。frame.width相当于list的窗⼝⾼度。content.width相当于list的所有item的⾼度。每次添加数据时,都需要添加所有list item的⾼度,从⽽得出size控制⼤⼩
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论