我有一个非常简单的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
}
Run Code Online (Sandbox Code Playgroud)
它显示模型正常并突出显示第一项.当我点击另一个项目时,当我使用箭头键时,它不会移动突出显示.我知道如何通过添加事件处理程序手动控制突出显示的项目,但我在文档中看到自动处理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
}
}
Run Code Online (Sandbox Code Playgroud)
如果使用向上和向下箭头键没有为您更改所选项目,使用上面的代码,那么这是一个错误.
但是,默认情况下不使用鼠标来选择项目; 只有轻弹/拖动列表.但是,添加很容易:
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
}
}
Run Code Online (Sandbox Code Playgroud)