このページでは

QItemEditorCreatorBase Class

QItemEditorCreatorBase クラスは、新しいアイテムエディタクリエーターを実装する際にサブクラス化する必要がある抽象基底クラスを提供します。詳細...

ヘッダー: #include <QItemEditorCreatorBase>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
継承元:

QItemEditorCreator およびQStandardItemEditorCreator

パブリック関数

virtual ~QItemEditorCreatorBase()
virtual QWidget *createWidget(QWidget *parent) const = 0
virtual QByteArray valuePropertyName() const = 0

詳細な説明

QItemEditorCreatorBase オブジェクトは、特定のQVariant データ型用のエディタウィジェットを提供する、特殊化されたウィジェットファクトリです。これらは、QItemEditorFactory によってQStyledItemDelegate用のエディタを作成するために使用されます。Creatorベースは、QItemEditorFactory::registerEditor() に登録する必要があります。

エディタは、編集対象のデータに対してユーザープロパティを提供する必要があります。そうすることで、QItemDelegatesはQtのメタオブジェクトシステムを使用してそのプロパティにアクセスし、編集データの設定や取得を行うことができます。プロパティは、USERキーワードを使用してユーザープロパティとして設定されます:

Q_PROPERTY(QColor color READ color WRITE setColor USER true)

エディタがユーザープロパティを提供しない場合は、valuePropertyName() からプロパティ名を返さなければなりません。そうすれば、デリゲートはその名前を使用してプロパティにアクセスします。ユーザープロパティが存在する場合、アイテムデリゲートはvaluePropertyName() を呼び出しません。

QStandardItemEditorCreator は、QItemEditorCreatorBaseをサブクラス化することなくウィジェットを登録するために使用できる、便利なテンプレートクラスです。

QStandardItemEditorCreator 、QItemEditorFactory 、および「モデル/ビュープログラミング」も参照してください 。

メンバ関数のドキュメント

[virtual noexcept] QItemEditorCreatorBase::~QItemEditorCreatorBase()

エディタの作成オブジェクトを破棄します。

[pure virtual] QWidget *QItemEditorCreatorBase::createWidget(QWidget *parent) const

指定されたparent を持つエディタウィジェットを返します。

このクラスのサブクラスでこの関数を実装する際は、指定された親ウィジェットを持つ新しいエディタウィジェットを生成して返さなければなりません。

[pure virtual] QByteArray QItemEditorCreatorBase::valuePropertyName() const

クリエーターのエディタウィジェットで値の取得および設定に使用されるプロパティ名を返します。

サブクラスでこの関数を実装する際は、この関数で指定されたエディタウィジェットのプロパティが、そのクリエータが登録されている型を受け入れられることを保証する必要があります。例えば、ブール値を編集するためのQCheckBox ウィジェットを構築するクリエータは、この関数からcheckable というプロパティ名を返すことになり、QMetaType::Bool 型用のアイテムエディタファクトリに登録されている必要があります。

注:Qt 4.2 以降、アイテムデリゲートはウィジェットの user プロパティを照会し、ウィジェットに user プロパティがない場合にのみこの関数を呼び出します。QAbstractItemDelegate::setModelData() およびQAbstractItemDelegate::setEditorData() を再実装することで、この挙動を上書きすることができます。

QMetaObject::userProperty() およびQItemEditorFactory::registerEditor()も参照してください 。

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