パスビューで現在のアイテムを取得する方法を知りたいです。
iscurrentItem プロパティはありますが、可能であればどのように使用できますか。現在の実装では、現在のインデックスを取得していますが、そのインデックスのアイテムの値は取得していません
preferredHighlightBeginおよびpreferredHighlightEndプロパティが定義されている場合、childAt 関数を使用して現在の項目を取得できます。
//example for vertical path
view.childAt(0, view.height * (preferredHighlightEnd + preferredHighlightBegin) / 2.0);
PathView のすべての子を反復処理し、どの子が現在のアイテムであるかを見つけることができる別のアプローチがあります。
for(var i = 0; i < view.children.length; ++i)
{
if(view.children[i].PathView.isCurrentItem){
console.log(i + " is current item")
//view.children[i] is your current item here
}
}
デリゲート アイテムで、パス カスタム プロパティを更新する接続を設定できます。
PathView {
id: myPathView
// ...
property Item currentItem
delegate: pathDelegate
}
Component {
id: pathDelegate
Item {
id: delegateItem
// ...
Connection {
target: myPathView
onCurrentIndexChanged: {
if (myPathView.currentIndex === delegateItem.index) {
myPathView.currentItem = delegateItem;
}
}
}
}
}
それほど効率的ではありませんが、機能します。