En esta página

QSqlRelationalDelegate Class

La clase QSqlRelationalDelegate proporciona un delegado que se utiliza para mostrar y editar datos de un QSqlRelationalTableModel. Más...

Cabecera: #include <QSqlRelationalDelegate>
CMake: find_package(Qt6 REQUIRED COMPONENTS Sql)
target_link_libraries(mytarget PRIVATE Qt6::Sql)
qmake: QT += sql
Hereda: QStyledItemDelegate

Funciones Públicas

QSqlRelationalDelegate(QObject *parent = nullptr)
virtual ~QSqlRelationalDelegate()

Funciones públicas reimplementadas

virtual QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override
virtual void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override

Descripción Detallada

A diferencia del delegado por defecto, QSqlRelationalDelegate proporciona un combobox para campos que son claves foráneas en otras tablas. Para usar la clase, simplemente llame a QAbstractItemView::setItemDelegate() en la vista con una instancia de QSqlRelationalDelegate:

    std::unique_ptr<QTableView> view{new QTableView};
    view->setModel(model);
    view->setItemDelegate(new QSqlRelationalDelegate(view.get()));

El ejemplo Relational Table Model (mostrado a continuación) ilustra cómo utilizar QSqlRelationalDelegate junto con QSqlRelationalTableModel para proporcionar tablas con soporte de claves foráneas.

El usuario puede editar una clave externa en una tabla relacional

Ver también QSqlRelationalTableModel y Programación Modelo/Vista.

Documentación de Funciones Miembro

[explicit] QSqlRelationalDelegate::QSqlRelationalDelegate(QObject *parent = nullptr)

Construye un objeto QSqlRelationalDelegate con la dirección parent.

[virtual noexcept] QSqlRelationalDelegate::~QSqlRelationalDelegate()

Destruye el objeto QSqlRelationalDelegate y libera los recursos asignados.

[override virtual] QWidget *QSqlRelationalDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const

Reimplementa: QStyledItemDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const.

[override virtual] void QSqlRelationalDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const

Reimplementa: QStyledItemDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.