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

couv_EPPYQT5.png

Découvrez 

le livre :

Aussi inclus dans nos :

Précédent
Plus loin avec l'utilisation de QSqlTableModel
Suivant
Le mapping de données avec QDataWidgetMapper