Instantiator QML Type

オブジェクトを動的に作成します。詳細...

Import Statement: import QtQml.Models

プロパティ

信号

方法

詳細説明

Instantiator は、オブジェクトの動的な作成を制御したり、テンプレートから複数のオブジェクトを動的に作成したりするために使用できます。

Instantiator 要素は、作成したオブジェクトを管理します。これらのオブジェクトはインスタンティエイターの親となり、インスタンティエイターのプロパティが変更された場合は、インスタンティエイターによって削除することもできます。オブジェクトは他の手段で動的に破棄することもでき、Instantiatorのプロパティが変更されない限り、Instantiatorが再作成することはありません。

注: Instantiatorは、バージョン2.14以降QtQml.Modelsの一部であり、バージョン2.1以降QtQml 。Qt 5.14 以降、QtQml を使ったインポートは非推奨です。

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

active : bool

active が true で、デリゲート・コンポーネントの準備ができている場合、Instantiator はモデルに従ってオブジェクトを作成します。active が false の場合、オブジェクトは作成されず、以前に作成されたオブジェクトは破棄されます。

デフォルトはtrueです。


asynchronous : bool

asynchronousがtrueの場合、インスタンティエイターはオブジェクトを非同期に作成しようとします。つまり、activeがtrueに設定されていても、オブジェクトがすぐに利用できるとは限りません。

objectAdded シグナルを使用すると、アイテムが作成されたときに応答することができます。

デフォルトはfalseです。


count : int [read-only]

Instantiator が現在管理しているオブジェクトの数。


delegate : QtQml::Component [default]

すべてのオブジェクトの作成に使用されるコンポーネント。

デリゲートのインスタンス内部では、indexという追加の変数が利用できることに注意してください。この変数は、インスタンシエータ内部のインスタンスのインデックスを指し、インスタンシエータのobjectAt メソッドを通じてオブジェクトを取得するために使用できます。

このプロパティを変更すると、古いデリゲートを使用していたインスタンスはすべて破棄され、新しいデリゲートを使用して新しいインスタンスが作成されます。


model : variant

このプロパティは、サポートされているデータモデルのいずれかに設定できます:

  • リピータが作成するデリゲートの数を示す数値。
  • モデル(ListModel アイテムやQAbstractItemModel サブクラスなど)。
  • 文字列リスト
  • オブジェクト・リスト

モデルのタイプは、delegate に公開されるプロパティに影響します。

デフォルト値は 1 で、1 つのデリゲート・インスタンスが作成されます。

データ・モデル」も参照してください


object : QtObject [read-only]

これは、最初に作成されたオブジェクトへの参照で、オブジェクトが1つしか作成されなかった場合の便宜を図ったものです。


シグナルの説明

objectAdded(int index, QtObject object)

このシグナルは、オブジェクトがインスタンシエータに追加されたときに発行されます。index パラメーターはオブジェクトに与えられたインデックスを保持し、object パラメーターは追加されたQtObject を保持します。

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


objectRemoved(int index, QtObject object)

このシグナルは、オブジェクトがInstantiatorから削除されたときに発行されます。index パラメーターはオブジェクトが与えられていたインデックスを保持し、object パラメーターは削除されたQtObject を保持します。

object への参照を保持しないでください。 がこのインスタンティエイターによって作成された場合は、シグナルが処理された直後に削除されます。

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


メソッド・ドキュメント

QtObject objectAt(int index)

与えられたindex を持つオブジェクトへの参照を返します。


© 2025 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.