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 の四角形はデフォルトで白で、選択用の四角形と重なっていました。透明に設定されたプロパティを使用して、選択範囲が見えるようにします。