Le mapping de données avec QDataWidgetMapper SQLite:mapping de données SQLite:QDataWidgetMapper
1. Introduction
Les deux exemples précédents mettent en perspective la possibilité de faire communiquer vue et modèle et d’afficher ainsi l’ensemble d’une table dans un composant similaire à un tableau.
Il arrive fréquemment que l’on ne souhaite pas un tel rendu et que l’on désire au contraire une présentation sous forme de fiche, c’est-à-dire une vue détaillée qui correspond à une et une seule ligne d’une table ou d’un modèle. Typiquement, dans cette hypothèse, une classe comme QSqlRelationalTableModel n’est pas adaptée au besoin. Nous utiliserons ici la classe QDataWidgetMapper.
La documentation de cette classe est accessible à cette adresse : https://doc.qt.io/qt-5/qdatawidgetmapper.html
2. Exemple d’utilisation
L’idée est donc ici de faire une fenêtre permettant de naviguer parmi les lignes de la table SUJET, et ce dans les deux sens de progression dans la base de données (« avant » et « arrière »). On affiche une ligne à la fois.
On commence par ajouter les imports nécessaires.
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLineEdit,
QPushButton
from PyQt5.QtWidgets import QTableView, QDialog, QFormLayout,
QDataWidgetMapper
On ajoute à...