QItemEditorCreatorBase Class
QItemEditorCreatorBaseクラスは、新しいアイテムエディタクリエータを実装する際にサブクラス化する必要がある抽象基底クラスを提供します。詳細...
ヘッダー | #include <QItemEditorCreatorBase> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
によって継承される: |
パブリック関数
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 をサブクラス化することなく、ウィジェットを登録するために使用できる便利なテンプレート・クラスです。
QStandardItemEditorCreator 、QItemEditorFactory 、および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()も参照してください 。
© 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.