Класс QItemEditorCreatorBase
Класс QItemEditorCreatorBase предоставляет абстрактный базовый класс, который необходимо наследовать при реализации новых создателей редакторов элементов. Подробнее...
| Заголовок: | #include <QItemEditorCreatorBase> |
| CMake: | find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Наследуется от: |
Открытые функции
| виртуальный | ~QItemEditorCreatorBase() |
| виртуальный QWidget * | createWidget(QWidget *parent) const = 0 |
| виртуальный QByteArray | valuePropertyName() const = 0 |
Подробное описание
Объекты QItemEditorCreatorBase являются специализированными фабриками виджетов, которые предоставляют виджеты редакторов для одного конкретного типа данных QVariant. Они используются классом QItemEditorFactory для создания редакторов для QStyledItemDelegate. Базовые классы создателей должны быть зарегистрированы с помощью QItemEditorFactory::registerEditor().
Редактор должен предоставлять пользовательское свойство для данных, которые он редактирует. QItemDelagates могут затем получить доступ к свойству с помощью системы метаобъектов Qt для установки и извлечения данных редактирования. Свойство устанавливается как пользовательское свойство с помощью ключевого слова USER:
Q_PROPERTY(QColor color READ color WRITE setColor USER true)
Если редактор не предоставляет пользовательское свойство, он должен вернуть имя свойства из valuePropertyName(); делегаты затем будут использовать имя для доступа к свойству. Если пользовательское свойство существует, делегаты элементов не будут вызывать valuePropertyName().
QStandardItemEditorCreator — это удобный шаблонный класс, который можно использовать для регистрации виджетов без необходимости наследования от QItemEditorCreatorBase.
См. также QStandardItemEditorCreator, QItemEditorFactory, Программирование модели/представления и Пример фабрики редактора цветов.
Документация по функциям-членам
[virtual] 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().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qitemeditorcreatorbase.html