工作中用到自动滚动的ListView,查了很多资料,这里简单做个笔记,简单易懂。
import QtQuick 2.12
import QtQuick.Window 2.12
import QtQml 2.3
import QtQuick.Controls 2.5
Window {
width: 640
height: 480
visible: true
title: qsTr("Hello World")
ListView {
id: list
anchors.fill : parent
model: ListModel {
ListElement {
name : 'Jie'
count : 10
}
ListElement {
name : 'Li'
count : 16
}
ListElement {
name : 'Wang'
count : 88
}
ListElement {
name : 'Wu'
count : 56
}
ListElement {
name : 'JieGe'
count : 10
}
ListElement {
name : 'LiMeng'
count : 16
}
ListElement {
name : 'WangWu'
count : 88
}
ListElement {
name : 'Wu'
count : 56
}
}
ScrollBar.vertical: ScrollBar {
policy: ScrollBar.AlwaysOn
}
delegate: Text {
height: list.height / 4
text: name + ' ' + count
color: 'red'
font.pointSize: 20
}
// 这个必须设置,否则滚动将达不到预期效果
highlightRangeMode: ListView.StrictlyEnforceRange
// 定时器设置索引,来滚动列表项
Timer {
interval: 1000
repeat: true
running: true
onTriggered: {
let index = list.currentIndex
if (index < list.count)
list.currentIndex = index + 1
else
list.currentIndex = 0
}
}
}
}