Instantiator QML Type
オブジェクトを動的に生成します。詳細...
| Import Statement: | import QtQml.Models |
プロパティ
- active : bool
- asynchronous : bool
- count : int
- delegate : QtQml::Component
- delegateModelAccess : enumeration
(since 6.10) - model : variant
- object : QtObject
信号
- objectAdded(int index, QtObject object)
- objectRemoved(int index, QtObject object)
方法
- QtObject objectAt(int index)
詳細な説明
Instantiator を使用すると、オブジェクトの動的な生成を制御したり、テンプレートから複数のオブジェクトを動的に生成したりすることができます。
Instantiator要素は、自身が生成したオブジェクトを管理します。これらのオブジェクトはInstantiatorの子オブジェクトとして扱われ、Instantiatorのプロパティが変更された場合には、Instantiatorによって削除されることもあります。また、オブジェクトは他の手段によって動的に破棄されることもありますが、Instantiatorのプロパティが変更されない限り、Instantiatorはそれらを再作成しません。
注:Instantiatorは 、バージョン2.14以降ではQtQml.Modelsの一部となり、バージョン2.1以降ではQtQml の一部となっています。QtQml 経由でのInstantiatorのインポートは、Qt 5.14以降で非推奨となっています。
プロパティのドキュメント
active : bool
active が true の場合、かつデリゲートコンポーネントの準備が整っていると、Instantiator はモデルに従ってオブジェクトを作成します。active が false の場合、オブジェクトは作成されず、以前に作成されたオブジェクトはすべて破棄されます。
デフォルト値は true です。
asynchronous : bool
asynchronous が true の場合、Instantiator はオブジェクトを非同期で作成しようとします。つまり、active が true に設定されていても、オブジェクトがすぐに利用可能になるとは限りません。
objectAdded シグナルを使用すると、オブジェクトが作成されたことを検知できます。
デフォルトは false です。
count : int [read-only]
Instantiatorが現在管理しているオブジェクトの数。
delegate : QtQml::Component [default]
すべてのオブジェクトの作成に使用されるコンポーネント。
なお、デリゲートのインスタンス内では、追加の変数「index」が利用可能になります。この変数は、Instantiator 内のそのインスタンスのインデックスを指しており、Instantiator の `objectAt ` メソッドを通じてオブジェクトを取得するために使用できます。
このプロパティが変更されると、古いデリゲートを使用しているすべてのインスタンスが破棄され、新しいデリゲートを使用して新しいインスタンスが作成されます。
delegateModelAccess : enumeration [since 6.10]
このプロパティは、デリゲートがモデルにアクセスする方法を決定します。
| 定数 | 説明 |
|---|---|
DelegateModel.ReadOnly | デリゲートが、コンテキストプロパティ、model オブジェクト、または必須プロパティのいずれかを介してモデルに書き込みを行うことを禁止します。 |
DelegateModel.ReadWrite | デリゲートが、コンテキスト プロパティ、model オブジェクト、または必須プロパティのいずれかを介してモデルに書き込みを行うことを許可します。 |
DelegateModel.Qt5ReadWrite | デリゲートが、model オブジェクトおよびコンテキスト プロパティを介してモデルへの書き込みを行えるようにしますが、必須プロパティを介した書き込みは許可しません。 |
デフォルトは `DelegateModel.Qt5ReadWrite` です。
このプロパティは Qt 6.10 で導入されました。
「 Qt Quick におけるモデルとビュー #モデルデータの変更」も参照してください 。
model : variant
このプロパティは、サポートされているデータモデルのいずれかに設定できます:
- リピーターによって作成されるデリゲートの数を示す数値
- モデル(例:ListModel アイテム、またはQAbstractItemModel のサブクラス)
- 文字列のリスト
- オブジェクトのリスト
モデルの型によって、delegate に公開されるプロパティが異なります。
デフォルト値は 1 で、1 つのデリゲートインスタンスが作成されます。
「データモデル」も参照してください 。
object : QtObject [read-only]
これは最初に作成されたオブジェクトへの参照であり、オブジェクトが1つしか作成されていない場合の便宜を図るためのものです。
Signal ドキュメント
objectAdded(int index, QtObject object)
このシグナルは、オブジェクトがInstantiatorに追加されたときに発火します。index パラメータには、そのオブジェクトに割り当てられたインデックスが格納され、object パラメータには、追加されたQtObject が格納されます。
注: 対応するハンドラは `onObjectAdded` です。
objectRemoved(int index, QtObject object)
このシグナルは、オブジェクトがInstantiatorから削除されたときに発火します。index パラメータには、そのオブジェクトに割り当てられていたインデックスが保持され、object パラメータには、削除されたQtObject が保持されます。
このInstantiatorによって作成されたobject への参照は保持しないでください。そのような場合、シグナルが処理された直後にそのオブジェクトは削除されます。
注: 対応するハンドラは onObjectRemoved です。
メソッドのドキュメント
QtObject objectAt(int index)
指定されたindex を持つオブジェクトへの参照を返します。
© 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.