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