Класс QItemEditorCreatorBase
Класс QItemEditorCreatorBase предоставляет абстрактный базовый класс, который необходимо наследовать при реализации новых создателей редакторов элементов. Подробнее...
| Заголовок: | #include <QItemEditorCreatorBase> |
| qmake: | QT += widgets |
| С тех пор: | Qt 4.2 |
| Наследуется от: |
Открытые функции
| virtual | ~QItemEditorCreatorBase() |
| virtual QWidget * | createWidget(QWidget *parent) const = 0 |
| virtual QByteArray | valuePropertyName() const = 0 |
Подробное описание
Класс QItemEditorCreatorBase предоставляет абстрактный базовый класс, который необходимо наследовать при реализации новых создателей редакторов элементов.
Объекты QItemEditorCreatorBase представляют собой специализированные фабрики виджетов, которые обеспечивают виджеты-редакторы для одного конкретного типа данных QVariant. Они используются классом QItemEditorFactory для создания редакторов для QItemDelegate. Создатели должны быть зарегистрированы с помощью QItemEditorFactory::registerEditor().
Редактор должен предоставить пользовательское свойство для данных, которые он редактирует. Классы QItemDelegate могут затем получить доступ к свойству с помощью механизма метаобъектов 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/archives/qt-5.6/qitemeditorcreatorbase.html