2

パスビューで現在のアイテムを取得する方法を知りたいです。

iscurrentItem プロパティはありますが、可能であればどのように使用できますか。現在の実装では、現在のインデックスを取得していますが、そのインデックスのアイテムの値は取得していません

4

2 に答える 2

4

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
  }
}
于 2012-11-28T12:45:07.650 に答える
3

デリゲート アイテムで、パス カスタム プロパティを更新する接続を設​​定できます。

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;
        }
      }
    }

  }

}

それほど効率的ではありませんが、機能します。

于 2012-11-28T14:54:26.343 に答える