1 - A propos du Widget QTableWidget
Un tableau est un arrangement de données en lignes et en colonnes et largement utilisé dans la communication, la recherche et l'analyse de données. Nous pouvons ajouter une ou plusieurs tables dans notre application PyQt en utilisant QTableWidget. QTableWidget est une classe en PyQt5 permettant d'organiser et d'afficher les données d'un tableau multidimentionnel.
2 - Création d'une simple table QTableWidget
Afin de créer une table QTableWidget, on doit importer la classe QTableWideget et faire une instanciation:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import sys from PyQt5.QtWidgets import QApplication, QWidget , QTableWidget , QTableWidgetItem app = QApplication(sys.argv) root = QWidget() root.setWindowTitle("QTableView Example") root.setGeometry(100 , 100 , 600 , 400) # create a QTableWidget table = QTableWidget(root) table.setRowCount(2) table.setColumnCount(3) table.setGeometry(50 , 50 , 350 , 150) root.show() sys.exit(app.exec_()) |
3 - Ajout du header
On peut aussi ajouter un entête horizontal et un entête vertical à l'aide des méthodes setHorizontalHeaderLabels() et setVerticalHeaderLabels()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
import sys from PyQt5.QtWidgets import QApplication, QWidget, QTableWidget, QTableWidgetItem app = QApplication(sys.argv) root = QWidget() root.setWindowTitle("Table Widget example !") root.setGeometry(100 , 100 , 500 , 300) # create a QTableWidget table = QTableWidget(root) table.setRowCount(2) table.setColumnCount(3) table.setGeometry(50 , 50 , 320 , 150) # adding header to the table headerH = ['ID' , 'Name' , 'email'] headerV = ['a' , 'b' ] table.setHorizontalHeaderLabels(headerH) table.setVerticalHeaderLabels(headerV) root.show() sys.exit(app.exec_()) |
4 - Ajout des données
On peut aussi ajouter des données via la méthode setItem:
1 |
setItem(row_number , column_number , QTableWidgetItem("element_to_add")) |
Exemple
Pour ajouter un élément à la première ligne et première colonne on utilise le code:
1 2 |
table = QTableWidget(root) setItem(0 , 0 , QTableWidgetItem("element")) |
Exemple (ajout d'une première ligne)
1 2 3 4 |
# adding a first row table.setItem(0 , 0 , QTableWidgetItem(' 1')) table.setItem(0 , 1 , QTableWidgetItem(' Albert Einstein')) table.setItem(0 , 2 , QTableWidgetItem(' albert_einstein@gmail.com')) |
Younes Derfoufi
CRMEF OUJDA