QMLのコントロール - ListView

2021年10月12日 (火) 10:23時点におけるWiki (トーク | 投稿記録)による版 (ページの作成:「== 概要 == <br><br> == アイテムのインデックスの取得 == 画面に表示されている現在のアイテムのインデックスを取得する方法は…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

概要



アイテムのインデックスの取得

画面に表示されている現在のアイテムのインデックスを取得する方法は、いくつか存在する。

ListViewのindexAtメソッド

現在の画面のxy座標を利用する場合、ListViewのindexAtメソッドを使用することができる。

indexロール

各デリゲートでは、デリゲートのスコープ内でindexロールを使用してインデックスを見つけることもできる。
インデックスは、modelで宣言したロールのようなものであり、ListViewにより自動的に割り当てられる。
indexロールの詳細は、以下のWebサイトを参照すること。
http://qt-project.org/doc/qt-5/qtquick-modelviewsdata-modelview.html#qml-data-models

 ListView 
 {
    delegate: ColumnLayout
    {
       property int indexOfThisDelegate: index
 
       // ...略
    }
 }


モデル内のアイテムのインデックスを含む特別なインデックスロールも、デリゲートが利用できる。
モデルからアイテムを削除した場合、このインデックスは-1に設定されることに注意する。

ListViewのcurrentItemプロパティ

ListViewのcurrentItemプロパティに明示的に値を割り当てて、ListView自身でスクロールできるようにする。

ListViewのcurrentItemプロパティの詳細は、以下のWebサイトを参照すること。
http://qt-project.org/doc/qt-5/qtquick-views-objectmodel-objectmodel-qml.html