Класс QItemEditorFactory
Класс QItemEditorFactory предоставляет виджеты для редактирования данных элементов в представлениях и делегатах. Подробнее...
| Заголовок: | #include <QItemEditorFactory> |
| qmake: | QT += widgets |
| С тех пор: | Qt 4.2 |
Этот класс был представлен в Qt 4.2.
Открытые функции
| QItemEditorFactory() | |
| virtual | ~QItemEditorFactory() |
| virtual QWidget * | createEditor(int userType, QWidget *parent) const |
| void | registerEditor(int userType, QItemEditorCreatorBase *creator) |
| virtual QByteArray | valuePropertyName(int userType) const |
Статические открытые члены
| const QItemEditorFactory * | defaultFactory() |
| void | setDefaultFactory(QItemEditorFactory *factory) |
Подробное описание
При редактировании данных в представлении элементов редакторы создаются и отображаются делегатом. QStyledItemDelegate, который является делегатом по умолчанию, установленным в представлениях элементов Qt, использует QItemEditorFactory для создания редакторов для него. По умолчанию используется уникальный экземпляр, предоставляемый QItemEditorFactory, который используется всеми делегатами элементов. Если вы установите новый фабричный объект по умолчанию с помощью setDefaultFactory(), новый фабрик будет использоваться существующими и новыми делегатами.
Фабрика хранит коллекцию экземпляров QItemEditorCreatorBase, которые являются специализированными редакторами, создающими редакторы для одного конкретного типа данных QVariant (все модели Qt хранят свои данные в QVariant).
Стандартные виджеты редактирования
Стандартная реализация фабрики предоставляет редакторы для различных типов данных. Они создаются всякий раз, когда делегату необходимо предоставить редактор для данных, предоставленных моделью. В следующей таблице показана взаимосвязь между типами и стандартными редакторами.
| Тип | Виджет редактора |
|---|---|
| bool | QComboBox |
| double | QDoubleSpinBox |
| int | QSpinBox |
| unsigned int | |
| QDate | QDateEdit |
| QDateTime | QDateTimeEdit |
| QPixmap | QLabel |
| QString | QLineEdit |
| QTime | QTimeEdit |
Дополнительные редакторы могут быть зарегистрированы с помощью функции registerEditor().
См. также QStyledItemDelegate, Программирование моделей/представлений и Пример фабрики цветовых редакторов.
Документация по функциям-членам
QItemEditorFactory::QItemEditorFactory()
Конструирует новый фабричный объект редакторов элементов.
[virtual] QItemEditorFactory::~QItemEditorFactory()
Уничтожает фабрику редакторов элементов.
[virtual] QWidget *QItemEditorFactory::createEditor(int userType, QWidget *parent) const
Создаёт виджет редактора с заданным parent для указанного типа данных userType и возвращает его как QWidget.
См. также registerEditor().
[static] const QItemEditorFactory *QItemEditorFactory::defaultFactory()
Возвращает фабричный объект редакторов элементов по умолчанию.
См. также setDefaultFactory().
void QItemEditorFactory::registerEditor(int userType, QItemEditorCreatorBase *creator)
Регистрирует создатель редактора элементов, указанный параметром creator, для данного типа данных userType.
Примечание: фабрика перенимает владение создателем редактора и уничтожит его, если позже будет зарегистрирован новый создатель для того же типа.
См. также createEditor().
[static] void QItemEditorFactory::setDefaultFactory(QItemEditorFactory *factory)
Устанавливает фабрику редакторов элементов по умолчанию в заданный factory. Как новые, так и существующие делегаты будут использовать новый фабрик.
См. также defaultFactory().
[virtual] QByteArray QItemEditorFactory::valuePropertyName(int userType) const
Возвращает имя свойства, используемого для доступа к данным для указанного типа данных userType.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qitemeditorfactory.html