我试图在 ListView 中突出显示当前选定的项目。下面是我正在使用的代码;出于某种原因,虽然类似的代码在此应用程序的另一个 ListView 中完美运行,但此处的 SelectedRectangle 项从未显示,尽管所选项目应更改时。
Rectangle {
id: deviceTree
width: (window.width * 2) / 3
height: 400
border {
width: 2
color: "black"
}
ListView {
id: deviceTreeView
model: deviceTreeModel
delegate: deviceTreeDelegate
highlight: SelectionRectangle {}
anchors.fill: parent
anchors.margins: 6
}
Component {
id: deviceTreeDelegate
Rectangle {
border.color: "#CCCCCC"
width: deviceTree.width
height: 30
smooth: true
radius: 2
MouseArea {
anchors.fill: parent
onClicked: { deviceTreeView.currentIndex = index; window.selectedDeviceChanged(deviceName) }
}
}
}
}
选定矩形.qml
Rectangle
{
id: selectionRectangle
color: "lightsteelblue"
smooth: true
radius: 5
}
解决方案: deviceTreeDelegate 中的矩形默认为白色,并与选择矩形重叠。使用该属性将其设置为透明,以便可以看到选择。