QSqlRelationalDelegate Class

The QSqlRelationalDelegate class provides a delegate that is used to display and edit data from a QSqlRelationalTableModel. More...

Header: #include <QSqlRelationalDelegate>
qmake: QT += sql
Inherits: QItemDelegate.

Public Functions

Reimplemented Public Functions

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

Additional Inherited Members

Detailed Description

The QSqlRelationalDelegate class provides a delegate that is used to display and edit data from a QSqlRelationalTableModel.

Unlike the default delegate, QSqlRelationalDelegate provides a combobox for fields that are foreign keys into other tables. To use the class, simply call QAbstractItemView::setItemDelegate() on the view with an instance of QSqlRelationalDelegate:

    QTableView *view = new QTableView;
    view->setModel(model);
    view->setItemDelegate(new QSqlRelationalDelegate(view));

The Relational Table Model example (shown below) illustrates how to use QSqlRelationalDelegate in conjunction with QSqlRelationalTableModel to provide tables with foreign key support.

See also QSqlRelationalTableModel and Model/View Programming.

Member Function Documentation

QSqlRelationalDelegate::​QSqlRelationalDelegate(QObject * parent = 0)

Constructs a QSqlRelationalDelegate object with the given parent.

QSqlRelationalDelegate::​~QSqlRelationalDelegate()

Destroys the QSqlRelationalDelegate object and frees any allocated resources.

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

Reimplemented from QAbstractItemDelegate::createEditor().

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

Reimplemented from QAbstractItemDelegate::setModelData().

© 2015 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.