- Qt 6.8
- Qt Widgets
- C++ Classes
- QItemEditorFactory
- Qt 6.8.3 Reference Documentation

# QItemEditorFactory Class

The QItemEditorFactory class provides widgets for editing item data in views and delegates. More...

Header: | `#include <QItemEditorFactory>`
CMake: | `find_package(Qt6 REQUIRED COMPONENTS Widgets)` `target_link_libraries(mytarget PRIVATE Qt6::Widgets)`
qmake: | `QT += widgets`

- List of all members, including inherited members

## Public Functions

| QItemEditorFactory()
virtual | ~QItemEditorFactory()
virtual QWidget * | createEditor(int userType, QWidget *parent) const
void | registerEditor(int userType, QItemEditorCreatorBase *creator)
virtual QByteArray | valuePropertyName(int userType) const

## Static Public Members

const QItemEditorFactory * | defaultFactory()
void | setDefaultFactory(QItemEditorFactory *factory)

## Detailed Description

When editing data in an item view, editors are created and displayed by a delegate. QStyledItemDelegate, which is the delegate by default installed on Qt's item views, uses a QItemEditorFactory to create editors for it. A default unique instance provided by QItemEditorFactory is used by all item delegates. If you set a new default factory with setDefaultFactory(), the new factory will be used by existing and new delegates.

A factory keeps a collection of QItemEditorCreatorBase instances, which are specialized editors that produce editors for one particular QVariant data type (All Qt models store their data in QVariants).

### Standard Editing Widgets

The standard factory implementation provides editors for a variety of data types. These are created whenever a delegate needs to provide an editor for data supplied by a model. The following table shows the relationship between types and the standard editors provided.

Type | Editor Widget
--- | ---
bool | QComboBox
double | QDoubleSpinBox
int | QSpinBox
unsigned int
QDate | QDateEdit
QDateTime | QDateTimeEdit
QPixmap | QLabel
QString | QLineEdit
QTime | QTimeEdit

Additional editors can be registered with the registerEditor() function.

See also QStyledItemDelegate and Model/View Programming.

## Member Function Documentation

### QItemEditorFactory::QItemEditorFactory()

Constructs a new item editor factory.

### `[virtual noexcept]` QItemEditorFactory::~QItemEditorFactory()

Destroys the item editor factory.

### `[virtual]` QWidget *QItemEditorFactory::createEditor(int userType, QWidget *parent) const

Creates an editor widget with the given parent for the specified userType of data, and returns it as a QWidget.

See also registerEditor().

### `[static]` const QItemEditorFactory *QItemEditorFactory::defaultFactory()

Returns the default item editor factory.

See also setDefaultFactory().

### void QItemEditorFactory::registerEditor(int userType, QItemEditorCreatorBase *creator)

Registers an item editor creator specified by creator for the given userType of data.

Note: The factory takes ownership of the item editor creator and will destroy it if a new creator for the same type is registered later.

See also createEditor().

### `[static]` void QItemEditorFactory::setDefaultFactory(QItemEditorFactory *factory)

Sets the default item editor factory to the given factory. Both new and existing delegates will use the new factory.

See also defaultFactory().

### `[virtual]` QByteArray QItemEditorFactory::valuePropertyName(int userType) const

Returns the property name used to access data for the given userType of data.