Auf dieser Seite

QItemEditorCreatorBase Class

Die Klasse „QItemEditorCreatorBase“ stellt eine abstrakte Basisklasse dar, von der bei der Implementierung neuer Item-Editor-Ersteller eine Unterklasse abgeleitet werden muss. Mehr...

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

QItemEditorCreator und QStandardItemEditorCreator

Öffentliche Funktionen

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

Ausführliche Beschreibung

QItemEditorCreatorBase-Objekte sind spezialisierte Widget-Fabriken, die Editor-Widgets für einen bestimmten „ QVariant “-Datentyp bereitstellen. Sie werden von „ QItemEditorFactory “ verwendet, um Editoren für „ QStyledItemDelegates“ zu erstellen. Creator-Basen müssen bei „ QItemEditorFactory::registerEditor()“ registriert werden.

Ein Editor sollte eine Benutzereigenschaft für die von ihm bearbeiteten Daten bereitstellen. QItemDelegates können dann mithilfe des Qt-Metaobjektsystems auf die Eigenschaft zugreifen, um die Bearbeitungsdaten festzulegen und abzurufen. Eine Eigenschaft wird mit dem Schlüsselwort USER als Benutzereigenschaft festgelegt:

Q_PROPERTY(QColor color READ color WRITE setColor USER true)

Wenn der Editor keine Benutzereigenschaft bereitstellt, muss er den Namen der Eigenschaft über ` valuePropertyName()` zurückgeben; Delegaten verwenden dann diesen Namen, um auf die Eigenschaft zuzugreifen. Wenn eine Benutzereigenschaft vorhanden ist, rufen Item-Delegaten ` valuePropertyName()` nicht auf.

QStandardItemEditorCreator ist eine Komfort-Vorlagenklasse, mit der Widgets registriert werden können, ohne dass eine Unterklasse von `QItemEditorCreatorBase` erstellt werden muss.

Siehe auch QStandardItemEditorCreator, QItemEditorFactory und Modell-Ansicht-Programmierung.

Dokumentation der Mitgliedsfunktionen

[virtual noexcept] QItemEditorCreatorBase::~QItemEditorCreatorBase()

Löscht das Objekt des Editor-Erstellers.

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

Gibt ein Editor-Widget mit dem angegebenen „ parent “ zurück.

Bei der Implementierung dieser Funktion in Unterklassen dieser Klasse müssen Sie neue Editor-Widgets erstellen und zurückgeben, wobei das übergeordnete Widget angegeben werden muss.

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

Gibt den Namen der Eigenschaft zurück, die zum Abrufen und Festlegen von Werten in den Editor-Widgets des Erstellers verwendet wird.

Bei der Implementierung dieser Funktion in Unterklassen müssen Sie sicherstellen, dass die durch diese Funktion angegebene Eigenschaft des Editor-Widgets den Typ akzeptieren kann, für den der Creator registriert ist. Beispielsweise würde ein Creator, der „ QCheckBox “-Widgets zum Bearbeiten von booleschen Werten erstellt, den Eigenschaftsnamen „ checkable “ über diese Funktion zurückgeben und muss in der Item-Editor-Factory für den Typ „ QMetaType::Bool “ registriert sein.

Hinweis: Seit Qt 4.2 fragen die Item-Delegaten die Benutzer-Eigenschaft von Widgets ab und rufen diese Funktion nur auf, wenn das Widget keine Benutzer-Eigenschaft besitzt. Sie können dieses Verhalten überschreiben, indem Sie ` QAbstractItemDelegate::setModelData()` und ` QAbstractItemDelegate::setEditorData()` neu implementieren.

Siehe auch QMetaObject::userProperty() und 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.