Exercice 15
On souhaite créer une table QTableWidget sur une fenêtre PyQt5 pour afficher les données des étudiants:
1) - Créez une instance de la classe QTableWidget en déclarant un objet nommé table avec 4 colonnes et 5 lignes, comprenant les attributs suivants :
- ID : Identifiant de l'enregistrement
- Name : Nom de l'enregistrement
- Email : Adresse email
- Section : Section d'étude (math, informatique, SVT, ...)
2) - Configurez les dimensions de la table à 500x400 pixels et spécifiez les largeurs des colonnes :
- 'ID' : 50px
- 'Name' : 150px
- 'Email' : 200px
- 'Section' : 150px
3) - Insérez les données du dictionnaire suivant dans la table :
1 2 3 4 5 6 7 |
students_data = [ {'id': 1, 'name': 'Rachid', 'email': 'rachid@gmail.com', 'section': 'mathématique'}, {'id': 2, 'name': 'Nadia', 'email': 'nadia@gmail.com', 'section': 'informatique'}, {'id': 3, 'name': 'Nathalie', 'email': 'nathalie@gmail.com', 'section': 'svt'}, {'id': 4, 'name': 'Alberto', 'email': 'alberto@gmail.com', 'section': 'HG'}, {'id': 5, 'name': 'Farid', 'email': 'farid@gmail.com', 'section': 'math'} ] |
Visualisez le rendu comme le montre la figure suivante:
Solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
import sys from PyQt5.QtWidgets import QApplication, QWidget, QTableWidget, QTableWidgetItem app = QApplication(sys.argv) root = QWidget() root.setWindowTitle("QTableView Example") root.setGeometry(100, 100, 650, 300) # create a QTableWidget table = QTableWidget(root) table.setRowCount(5) table.setColumnCount(4) # ajouter le header # adding header to the table headerH = ['ID', 'Name', 'email', 'section'] table.setHorizontalHeaderLabels(headerH) # Définir la largeur des colonnes table.setColumnWidth(0, 50) # Colonne ID table.setColumnWidth(1, 150) # Colonne Name table.setColumnWidth(2, 200) # Colonne email table.setColumnWidth(3, 150) # Colonne section table.setGeometry(50, 50, 550, 200) # définir les données des étudiants students_data = [ {'id': 1, 'name': 'Rachid', 'email': 'rachid@gmail.com', 'section': 'mathématique'}, {'id': 2, 'name': 'Nadia', 'email': 'nadia@gmail.com', 'section': 'informatique'}, {'id': 3, 'name': 'Nathalie', 'email': 'nathalie@gmail.com', 'section': 'svt'}, {'id': 4, 'name': 'Alberto', 'email': 'alberto@gmail.com', 'section': 'HG'}, {'id': 5, 'name': 'Farid', 'email': 'farid@gmail.com', 'section': 'math'} ] # initialiser le numéro de la ligne index_row = 0 # Insertion des données dans la table for data in students_data: table.setItem(index_row , 0 , QTableWidgetItem(str(data['id'])) table.setItem(index_row , 1 , QTableWidgetItem(data['name'])) table.setItem(index_row , 2 , QTableWidgetItem(data['email'])) table.setItem(index_row , 3 , QTableWidgetItem(data['section'])) # incrémenter le numéro de la ligne index_row +=1 # Afficher la fenêtre root.show() sys.exit(app.exec_()) |
Younes Derfoufi
CRMEF OUJDA
1 thought on “Solution Exercice 15 : Création et insertion des données dans une table QTableWidget PyQt5”