Spec-Zone.ru › Qt

Класс QItemEditorFactory

Класс QItemEditorFactory предоставляет виджеты для редактирования данных элементов в представлениях и делегатах. Подробнее...

Заголовок: #include <QItemEditorFactory>
CMake: find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
  • Список всех членов, включая унаследованные члены

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

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-6.2/qitemeditorfactory.html

Spec-Zone.ru

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