我试图强制将突出显示的项目绘制到GridView中当前选定的项目上,但没有成功。这是我的QML:
import QtQuick 2.0
GridView {
id: gridView
width: 140
height: 140
cellHeight: 70
cellWidth: 70
highlight: Rectangle {
color: "red"
z: 1
}
delegate: Item {
id: itemId
width: GridView.view.cellWidth
height: GridView.view.cellHeight
Text {
id: textId
text: "1234"
}
MouseArea {
anchors.fill: parent
onClicked: itemId.GridView.view.currentIndex = index
}
}
model: 100
}
我希望将高光部分的z
设置为1可以完成这项工作,但是效果不理想。如果选择打开窗口后立即显示的项目,则突出显示会覆盖它们,但是当我开始滚动并选择下面的项目时,突出显示不再位于顶部。我该如何解决?
z
委托中的GridView
的默认值为1(link)。不知道为什么在可以设置除0之外的任何其他值的情况下都无法指定属性z: 0
(然后总是返回默认值)。但是您可以在Highlight属性中指定z: 2
或将默认值z
覆盖为委托的onCompleted
处理程序中为0:
Component.onCompleted: {
z = 0;
}