Я пытаюсь выделить текущий выбранный элемент в 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) }
}
}
}
}
SelectedRectangle.qml
Rectangle
{
id: selectionRectangle
color: "lightsteelblue"
smooth: true
radius: 5
}
РЕШЕНИЕ :Прямоугольник в deviceTreeDelegate по умолчанию был белым и перекрывал прямоугольник выбора. Используя свойство, оно установлено как прозрачное, чтобы можно было увидеть выделение.