このページでは

DelegateModelGroup QML Type

フィルタリングされたビジュアル・データ・アイテムのセットをカプセル化します。詳細...

Import Statement: import QtQml.Models

プロパティ

信号

  • changed(array removed, array inserted)

方法

  • void addGroups(int index, int count, list<string> groups)
  • var create(int index)
  • var create(jsdict data, array groups)
  • var create(int index, jsdict data, array groups)
  • object get(int index)
  • void insert(jsdict data, var groups)
  • void insert(int index, jsdict data, array groups)
  • void move(var from, var to, int count)
  • void remove(int index, int count)
  • void removeGroups(int index, int count, list<string> groups)
  • void resolve(int from, int to)
  • void setGroups(int index, int count, list<string> groups)

詳細な説明

DelegateModelGroup 型は、DelegateModel のデリゲート・アイテムのモデル・データを扱ったり、これらのデリゲート・アイテムをソートしたりフィルタリングしたりするための手段を提供する。

DelegateModel items DelegateModel::modelこのセットは、DelegateModelGroup のnameDelegateModel::filterOnGroup プロパティに代入することで、DelegateModel::groups の他のメンバーの内容に変更することができる。

DelegateModelGroup 内のアイテムのデータには、get() 関数を使用してアクセスすることができます。この関数は、モデル・データだけでなく、グループ・メンバーシップやインデックスに関する情報も返します。move() 関数と組み合わせることで、remove() を使用してビューから項目をフィルタリングしたり、setGroups() やPackage デリゲートを使用して項目を異なるビューに分類したりと、ビューのソートを実装するために使用することができます。異なるグループは、それらが分離している場合にのみ独立してソートすることができます。あるグループのアイテムを移動させると、そのアイテムが属する他のすべてのグループのアイテムも移動します。

モデルからのデータは、insert() 関数を使って DelegateModelGroup に直接データを挿入することで補足することができます。これは、ビューにモックアイテムを導入するために使用することができます。また、後で実際のモデルデータが利用可能になったときに、resolved 、プレースホルダーアイテムを導入することもできます。

また、create() 関数を使用することで、DelegateModelGroup から Delegate アイテムを直接インスタンス化することができます。これにより、DelegateModel をビューの種類に関係なく使用したり、ビューの可視領域内にあるかどうかに関係なく、インスタンス化すべき特定のアイテムを選択したりすることができます。

QML Dynamic View Ordering Tutorialも参照してください

プロパティのドキュメント

count : int [read-only]

このプロパティは、グループ内のアイテム数を保持する。

includeByDefault : bool

このプロパティは、新しいアイテムをデフォルトでこのグループに割り当てるかどうかを保持します。

name : string

このプロパティはグループの名前を保持します。

モデル内の各グループは、小文字で始まるユニークな名前を持つ必要があります。

シグナルのドキュメント

changed(array removed, array inserted)

このシグナルは、アイテムがグループから削除されたとき、またはグループに挿入されたときに発せられる。

removed およびinserted 配列の各オブジェクトは、挿入または削除された最初のアイテムのインデックスと、 挿入または削除されたアイテムの連続数のカウントの2つの値を持ちます。

各インデックスは、挿入された項目の前にすべての削除された項目があるように、以前の変更に対して調整される。

注意: 対応するハンドラはonChanged です。

メソッドのドキュメント

void addGroups(int index, int count, list<string> groups)

index から始まるcount の項目をgroups に追加する。

var create(int index)

var create(int index, jsdict data, array groups = undefined)

var create(jsdict data, array groups = undefined)

グループ内のindex でインスタンス化された項目への参照を返す。

data オブジェクトが指定された場合、それはindexinserted となり、この新しいエントリを参照する項目が返されます。オプションのgroups パラメータは、新しいエントリが属するべきグループを指定します。 未指定の場合、これはcreate() がコールされたグループと等しくなります。

createによって返されたすべての項目は、persistedItems グループに追加されます。このグループのアイテムは、どのビューからも参照されていない場合でもインスタンス化されたままです。

object get(int index)

グループ内のindex にあるアイテムを説明する javascript オブジェクトを返します。

返されるオブジェクトには、DelegateModel にアタッチされたデリゲートが利用できる情報と、そのアイテムのモデルが含まれています。プロパティは以下の通りです:

  • modelアイテムのモデルデータ。これは、デリゲートのモデルコンテキストプロパティと同じです。
  • groupsそのアイテムが属しているグループ名のリスト。このプロパティは、アイテムのメンバーシップを変更するために書き込むことができる。
  • inItemsそのアイテムがitems グループに属しているかどうか。このプロパティに書き込むことで、アイテムをグループから追加または削除することができる。
  • itemsIndex items グループ内のアイテムのインデックス。
  • in<GroupName>そのアイテムが動的グループgroupName に属しているかどうか。このプロパティに書き込むと、項目がグループから追加または削除されます。
  • <groupName>Index動的グループgroupName 内の項目のインデックス。
  • isUnresolved項目がDelegateModel::model に割り当てられているモデル内のインデックスにバインドされているかどうか。アイテムがモデルにバインドされていない場合はtrueを返し、バインドされている場合はfalseを返します。

void insert(int index, jsdict data, array groups = undefined)

void insert(jsdict data, var groups = undefined)

DelegateModel::model に割り当てられたモデル内のロールに対応するdata からの値で、DelegateModelindex に新しいエントリを作成します。

インデックスが指定されない場合、データはモデルに追加されます。

オプションのgroups パラメータは、新しいエントリが属するグループを指定します。指定されていない場合、これはinsertが呼び出されたグループと等しくなります。

DelegateModel に挿入されたデータは、後でresolve() 関数を使用してDelegateModel::model の既存のエントリとマージすることができます。これは、後で実際のデータに置き換えるプレースホルダー項目を作成するために使用できる。

void move(var from, var to, int count)

グループtofrom にあるcount を新しい位置に移動する。

注: DelegateModel はプロキシモデルとして動作します:underlying model が持つ順序とは異なる順序でデリゲートを保持します。その後に基礎となるモデルを変更しても、この関数で行った順序の変更は元に戻りません。

void remove(int index, int count)

index で始まるcount の項目をグループから削除する。

void removeGroups(int index, int count, list<string> groups)

groups からindex で始まるcount の項目を削除する。

void resolve(int from, int to)

from の未解決項目をDelegateModel::model のインデックスto の項目に結びつける。

未解決項目とは、DelegateModel::model インデックスから派生したのではなく、DelegateModelGroup にデータがinserted された項目のことである。アイテムを解決すると、対象のインデックスのアイテムは未解決のアイテムに置き換えられます。解決された項目は、そのバインドインデックスにソースモデルのデータを反映し、他の項目と同様にそのインデックスが移動すると移動します。

新しいアイテムがDelegateModelGroup onChanged() ハンドラで置換された場合、その挿入と置換はアトミックな操作としてビューに伝えられ、モデルの内容が変更されていないように見せかけたり、未解決のアイテムとモデルのアイテムが隣接していない場合、以前に未解決だったアイテムが単に移動したように見せかけたりします。

void setGroups(int index, int count, list<string> groups)

index で始まるcount アイテムのグループメンバーシップを変更する。アイテムは既存のグループから削除され、groups に追加される。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.