我有一个非常简单的ListView。
ListView {
id: logListView
anchors.fill: parent
model: LogEntryListModel
delegate:
Text {
text: "Log Item: " + timestamp + ", " + verb
}
highlight: Rectangle { color: "lightsteelblue"; radius: 5 }
focus: true
clip: true
}
它显示模型并突出显示第一项。当我单击另一个项目或使用箭头键时,它不会移动突出显示。我知道如何通过添加事件处理程序来手动控制突出显示的项目,但我在文档中看到对selectedItem的自动处理的引用。我想知道:
QML提供自动更改选中的项目突出显示吗?我需要添加什么才能打开它?
键盘处理是自动完成的:
import QtQuick 2.0
import QtQuick.Controls 1.1
Rectangle {
width: 400
height: 400
ListView {
id: logListView
anchors.fill: parent
model: 10
delegate: Text {
text: "Log Item: " + modelData
}
highlight: Rectangle {
color: "lightsteelblue";
radius: 5
}
focus: true
clip: true
}
}
如果使用上面的代码,使用向上和向下方向键不能改变选中的项目,那么这是一个bug。
默认情况下不处理使用鼠标选择项目;只有轻弹/拖拽列表。不过,它很容易添加:
import QtQuick 2.0
import QtQuick.Controls 1.1
Rectangle {
width: 400
height: 400
ListView {
id: logListView
anchors.fill: parent
model: 10
delegate: Text {
text: "Log Item: " + modelData
MouseArea {
anchors.fill: parent
onClicked: logListView.currentIndex = index
}
}
highlight: Rectangle {
color: "lightsteelblue";
radius: 5
}
focus: true
clip: true
}
}