QItemEditorCreatorBase Class

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

Header: #include <QItemEditorCreatorBase>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Inherited By:

QItemEditorCreator and QStandardItemEditorCreator

パブリック関数

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

詳細説明

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

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

Q_PROPERTY(QColor color READ color WRITE setColor USER true)

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

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

QStandardItemEditorCreatorQItemEditorFactory 、およびModel/View Programmingも参照してください

メンバ関数 ドキュメント

[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 以降、アイテムデリゲートはウィジェットのユーザプロパティを問い合わせ、ウィジェットにユーザプロパティがない場合にのみこの関数を呼び出します。QAbstractItemDelegate::setModelData() とQAbstractItemDelegate::setEditorData() を再実装することで、この動作をオーバーライドできます。

QMetaObject::userProperty() とQItemEditorFactory::registerEditor()も参照してください

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。