QML中ListView显示时,点击按下某个对象才显示选择框,而不是默认显示第一个选择框,如何设置
时间: 2024-04-10 22:34:22 浏览: 148
在QML中,可以通过设置`ListView`的`highlightFollowsCurrentItem`属性来控制是否默认显示选择框。默认情况下,该属性为`true`,即ListView会自动显示当前选中项的选择框。如果你想要在点击某个对象后才显示选择框,可以将`highlightFollowsCurrentItem`属性设置为`false`,然后在点击事件中手动设置当前选中项。
以下是一个示例代码:
```qml
ListView {
id: listView
width: 200
height: 300
model: ListModel {
ListElement { text: "Item 1" }
ListElement { text: "Item 2" }
ListElement { text: "Item 3" }
}
delegate: Rectangle {
width: listView.width
height: 30
color: listView.currentIndex === index ? "lightblue" : "white"
Text {
anchors.centerIn: parent
text: model.text
}
MouseArea {
anchors.fill: parent
onClicked: {
listView.currentIndex = index;
}
}
}
highlightFollowsCurrentItem: false
}
```
在上述代码中,我们将`highlightFollowsCurrentItem`属性设置为`false`,并在delegate的MouseArea中设置了点击事件,当点击某个对象时,手动将当前选中项设置为被点击的项(`listView.currentIndex = index;`),这样才会显示选择框。
希望对你有帮助!如果还有其他问题,请继续提问。
阅读全文