Sur cette page

QSqlRelationalDelegate Class

La classe `QSqlRelationalDelegate` fournit un délégué permettant d'afficher et de modifier les données provenant d'un ` QSqlRelationalTableModel`. En savoir plus...

En-tête : #include <QSqlRelationalDelegate>
CMake : find_package(Qt6 REQUIRED COMPONENTS Sql)
target_link_libraries(mytarget PRIVATE Qt6::Sql)
qmake : QT += sql
Hérite de : 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 liste déroulante pour les champs qui sont des clés étrangères vers d'autres tables. Pour utiliser cette classe, il suffit d'appeler la méthode ` 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 « Relational Table Model » (présenté ci-dessous) illustre comment utiliser QSqlRelationalDelegate en conjonction avec QSqlRelationalTableModel pour doter les tables d’une prise en charge des clés étrangères.

L'utilisateur peut modifier une clé étrangère dans une table relationnelle

Voir également QSqlRelationalTableModel et Programmation modèle-vue.

Documentation sur les fonctions membres

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

Crée un objet QSqlRelationalDelegate avec l'parent on fournie.

[virtual noexcept] QSqlRelationalDelegate::~QSqlRelationalDelegate()

Détruit l'objet ` QSqlRelationalDelegate ` et libère toutes 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.