@derMで述べたように、GridItemのzインデックスで作業することができます。
注:あなたの質問に関係する部分は、onPressed
イベントのコードがGridItem内にあるMouseArea
というコードです。
Rectangle{
width: 1280
height: 800
GridView{
Rectangle{ anchors.fill: parent; color: 'blue'; opacity: 0.2; }
id: musicBox
width: 500; height: 500
model: 10
anchors.centerIn: parent
delegate: Rectangle{
id: songItem
border{ width: 2; color: 'blue'}
width: 100; height: 100
color: (musicBox.currentIndex == index) ? 'yellow' : 'red'
Text{
anchors.centerIn: parent
text: index
font.pixelSize: 20
}
MouseArea{
anchors.fill: songItem
drag{
minimumX: 0
minimumY: 0
maximumX: musicBox.width
maximumY: musicBox.height
axis: Drag.XandYAxis
target: songItem
}
onPressed:{
for(var i = 0; i < musicBox.count; i++){ musicBox.currentIndex = i; musicBox.currentItem.z = i; }
musicBox.currentIndex = index
musicBox.currentItem.z = musicBox.count
}
}
}
}
}
出典
2016-10-27 07:27:51
tbf
あなたの古い質問の1つを調べることができます。私はすでにそれに答えました。 "指定された領域"のコードスニペットをgridviewで切り替えると、gridviewのコードが "指定された領域"のコードの後に来るようになり、その上にlayerdされます。または、gridviewのzプロパティを "指定された領域"(http://doc.qt.io/qt-5/qml-qtquick-item.html#z-小道具) – derM
ご協力いただきありがとうございます。しかし、グリッドビューのコードはすでにすべてのレイヤーの上にあります。それは問題ではありません。問題は、グリッドビューのグリッド項目のレイヤーの間です。選択したグリッド項目を同じグリッドビュー内の他のすべてのグリッド項目の上に移動する必要があります。 –
次に、ドラッグがアクティブである限り、GridItemのz値を正の値に設定することができます。 – derM