Sur cette page

QSqlRelationalDelegate Class

La classe QSqlRelationalDelegate fournit un délégué qui est utilisé pour afficher et modifier des données à partir d'un site QSqlRelationalTableModel. Plus....

En-tête : #include <QSqlRelationalDelegate>
CMake : find_package(Qt6 REQUIRED COMPONENTS Sql)
target_link_libraries(mytarget PRIVATE Qt6::Sql)
qmake : QT += sql
Héritages : QStyledItemDelegate

Fonctions publiques

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

Fonctions publiques réimplémentées

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

Description détaillée

Contrairement au délégué par défaut, QSqlRelationalDelegate fournit une boîte de dialogue pour les champs qui sont des clés étrangères dans d'autres tables. Pour utiliser la classe, il suffit d'appeler QAbstractItemView::setItemDelegate() sur la vue avec une instance de QSqlRelationalDelegate :

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

L'exemple du modèle de table relationnelle (ci-dessous) illustre comment utiliser QSqlRelationalDelegate en conjonction avec QSqlRelationalTableModel pour fournir des tables avec un support de clé étrangère.

L'utilisateur est en mesure de modifier une clé étrangère dans une table relationnelle.

Voir également QSqlRelationalTableModel et Model/View Programming.

Documentation sur les fonctions membres

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

Construit un objet QSqlRelationalDelegate avec l'adresse parent.

[virtual noexcept] QSqlRelationalDelegate::~QSqlRelationalDelegate()

Détruit l'objet QSqlRelationalDelegate et libère les ressources allouées.

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

Réimplémente : QStyledItemDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const.

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

Réimplémente : 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.