QItemEditorCreatorBase Class
Die Klasse QItemEditorCreatorBase stellt eine abstrakte Basisklasse dar, die bei der Implementierung neuer Editor-Ersteller untergeordnet werden muss. Mehr...
Kopfzeile: | #include <QItemEditorCreatorBase> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
Vererbt von: |
Öffentliche Funktionen
virtual | ~QItemEditorCreatorBase() |
virtual QWidget * | createWidget(QWidget *parent) const = 0 |
virtual QByteArray | valuePropertyName() const = 0 |
Detaillierte 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 Bases müssen mit QItemEditorFactory::registerEditor() registriert werden.
Ein Editor sollte eine Benutzereigenschaft für die Daten, die er bearbeitet, bereitstellen. QItemDelagates kann dann über das Meta-Objektsystem von Qt auf die Eigenschaft zugreifen, um die Bearbeitungsdaten zu setzen und abzurufen. Eine Eigenschaft wird als Benutzereigenschaft mit dem Schlüsselwort USER festgelegt:
Q_PROPERTY(QColor color READ color WRITE setColor USER true)
Wenn der Editor keine Benutzereigenschaft bereitstellt, muss er den Namen der Eigenschaft von valuePropertyName() zurückgeben; die Delegaten verwenden dann den Namen, um auf die Eigenschaft zuzugreifen. Wenn eine Benutzereigenschaft vorhanden ist, rufen Item-Delegierte nicht valuePropertyName() auf.
QStandardItemEditorCreator ist eine bequeme Vorlagenklasse, die verwendet werden kann, um Widgets zu registrieren, ohne dass eine Unterklasse QItemEditorCreatorBase erforderlich ist.
Siehe auch QStandardItemEditorCreator, QItemEditorFactory, und Model/View Programming.
Dokumentation der Mitgliedsfunktionen
[virtual noexcept]
QItemEditorCreatorBase::~QItemEditorCreatorBase()
Zerstört das Erzeugerobjekt des Editors.
[pure virtual]
QWidget *QItemEditorCreatorBase::createWidget(QWidget *parent) const
Gibt ein Editor-Widget mit dem angegebenen parent zurück.
Wenn Sie diese Funktion in Unterklassen dieser Klasse implementieren, müssen Sie neue Editor-Widgets mit dem angegebenen übergeordneten Widget konstruieren und zurückgeben.
[pure virtual]
QByteArray QItemEditorCreatorBase::valuePropertyName() const
Gibt den Namen der Eigenschaft zurück, die zum Abrufen und Setzen von Werten in den Editor-Widgets des Erstellers verwendet wird.
Wenn Sie diese Funktion in Unterklassen implementieren, müssen Sie sicherstellen, dass die von dieser Funktion angegebene Eigenschaft des Editor-Widgets den Typ akzeptieren kann, für den der Ersteller registriert ist. Zum Beispiel würde ein Creator, der QCheckBox Widgets konstruiert, um boolesche Werte zu bearbeiten, den checkable Eigenschaftsnamen von dieser 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-Delegierten die Benutzereigenschaft von Widgets ab und rufen diese Funktion nur auf, wenn das Widget keine Benutzereigenschaft hat. Sie können dieses Verhalten außer Kraft setzen, indem Sie QAbstractItemDelegate::setModelData() und QAbstractItemDelegate::setEditorData() reimplementieren.
Siehe auch QMetaObject::userProperty() und 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.