L’utilisation de QSqlRelationalTableModel SQLite:QSqlRelationalTableModel

1. Introduction

Le précédent exemple basé sur l’usage de QSqlTableModel avait l’avantage et la simplicité de manipuler une table qui n’utilisait pas de clé étrangère. En effet, l’utilisation d’une relation via une clé étrangère poserait alors le problème d’obtenir à l’affichage uniquement la valeur de la clé étrangère et non les éléments compréhensibles issus de la table liée par cette relation.

La classe QSqlRelationalTableModel permet de résoudre ce problème, c’est-à-dire que l’on peut, grâce à elle, remonter les informations depuis les tables liées pour les afficher, puis les sélectionner.

La documentation en ligne relative à cette classe est disponible ici : https://doc.qt.io/qt-5/qsqlrelationaltablemodel.html

2. Exemple d’utilisation

Comme à habituellement, on commence par déclarer les différents imports nécessaires.

import sys 
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, 
QPushButton, QVBoxLayout 
from PyQt5.QtWidgets import QPushButton, QTableView, QDialog 
from PyQt5 import QtSql, QtGui, QtCore 
from PyQt5.QtSql import QSqlTableModel, QSqlDatabase, QSqlQuery 
from PyQt5.QtSql import QSqlRelationalTableModel, QSqlRelation,  
QSqlRelationalDelegate 

Comme précédemment...

Pour consulter la suite, découvrez le livre suivant :
couv_EPPYQT5.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Plus loin avec l'utilisation de QSqlTableModel
Suivant
Le mapping de données avec QDataWidgetMapper