Spec-Zone.ru › Qt 5.13

Класс QItemEditorCreatorBase

Класс QItemEditorCreatorBase предоставляет абстрактный базовый класс, который необходимо наследовать при реализации новых создателей редакторов элементов. Подробнее...

Заголовок: #include <QItemEditorCreatorBase>
qmake: QT += widgets
С момента: Qt 4.2
Наследуется от:

QItemEditorCreator и QStandardItemEditorCreator

Этот класс был представлен в Qt 4.2.

  • Список всех членов, включая унаследованные члены

Открытые функции

виртуальный ~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 из этой функции и должен быть зарегистрирован в фабрике редакторов элементов для типа QVariant::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-5.13/qitemeditorcreatorbase.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API