Python

Comment utiliser PyQt QTableWidget

Comment utiliser PyQt QTableWidget
Un tableau permet d'afficher des données dans un format structuré, selon des lignes et des colonnes. le QTableWidget la classe de PyQt peut être utilisée en Python pour afficher des données sous forme de tableau pour des tâches liées à la recherche ou à l'analyse de données. Le contenu de la table peut être généré à partir de différents types de stockage, tels que des listes ou des tables bidimensionnelles, des tables de base de données, des fichiers JSON, etc.  Une ou plusieurs tables peuvent être créées en utilisant QTableWidget dans l'application PyQt. Ce tutoriel montre comment utiliser QTableWidget pour créer différents types de tables à l'aide d'un script Python.

Méthodes nécessaires

le QTableWidget la classe comprend de nombreuses méthodes pour effectuer des tâches liées à la création de tables. Certaines des méthodes les plus couramment utilisées de cette classe sont expliquées ci-dessous :

Nom de la méthode Objectif
setRowCount() Utilisé pour définir le nombre de lignes.
setColumnCount() Utilisé pour définir le nombre de colonnes.
setHorizontalHeaderLabels() Utilisé pour définir les étiquettes d'en-tête du tableau.
setItem() Utilisé pour définir la valeur de la cellule du tableau.
resizeColumnsToContents() Utilisé pour redimensionner les colonnes du tableau en fonction du contenu.
resizeRowsToContents() Utilisé pour redimensionner les lignes du tableau en fonction du contenu.
setMinimumWidth() Utilisé pour définir la largeur minimale du tableau.
setMinimumHeight() Permet de régler la hauteur minimale de la table.
spectacle() Utilisé pour afficher le tableau.

Utilisation de QTableWidget

Les sections suivantes fournissent des exemples simples pour expliquer comment créer une table dans l'application PyQt à l'aide de données statiques et de données de liste.

Exemple 1 : créer une table simple à l'aide de données statiques

Le script suivant crée une table de données statiques avec cinq lignes et quatre colonnes en utilisant le QTableWidget classer. Deux pour des boucles avec des valeurs de plage ont été utilisées dans le script pour ajouter les données statiques dans les cellules du tableau. Les positions de ligne et de colonne de chaque cellule ont été ajoutées en tant que contenu de chaque cellule. le QDesktopWidget est utilisé dans le script pour afficher la fenêtre avec le tableau au centre de l'écran.

# Importez les bibliothèques nécessaires
importer le système
de PyQt5.QtWidgets importent QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QDesktopWidget
de PyQt5.QtCore importer QSize
# Définir la classe pour créer la table avec des données statiques
classe SimpleTable(QMainWindow):
def __init__(self):
# Appeler le constructeur parent
super().__init__()
# Définir la taille et le titre de la fenêtre
soi.setMinimumSize(QSize(420, 150))
soi.setWindowTitle("Tableau simple avec données statiques")
# Créer la table avec les propriétés nécessaires
table = QTableWidget(self)
tableau.setColumnCount(4)
tableau.setRowCount(5)
tableau.setMinimumWidth(500)
tableau.setHauteurMinimum(500)
# Définir les en-têtes du tableau
tableau.setHorizontalHeaderLabels(["En-tête-1", "En-tête-2", "En-tête-3", "En-tête-4"])
# Définir les valeurs du tableau
pour i dans la plage (5) :
pour j dans la plage(4) :
tableau.setItem(i, j, QTableWidgetItem("Ligne-" + str(i+1) + " , Col-" + str(j+1)))
# Redimensionnement des lignes et des colonnes en fonction du contenu
tableau.resizeColumnsToContents()
tableau.resizeRowsToContents()
# Afficher le tableau
tableau.spectacle()
# Afficher la fenêtre au centre de l'écran
gagner = soi.frameGeometry()
pos = QDesktopWidget().disponibleGéométrie().centre()
gagner.moveCenter(pos)
soi.déplacer (gagner.en haut à gauche())
soi.spectacle()
# Créer un objet d'application et exécuter l'application
app = QApplication(sys.argv)
mw = SimpleTable()
mw.spectacle()
application.exec()

La fenêtre suivante avec un tableau apparaîtra le script ci-dessus est exécuté. Selon les valeurs de la pour boucles, la valeur de la cellule de la première ligne et de la première colonne est 'Rangée-1, Col-1,' et la valeur de la cellule de la dernière ligne et de la dernière colonne est 'Rangée-5, Col-4.'

Exemple 2 : Créer une table avec une info-bulle à l'aide d'un dictionnaire et de données de liste

Le script suivant crée une table avec le contenu d'un dictionnaire Python et une liste en utilisant le QTableWidget classer. Le script ajoute également un texte d'info-bulle pour l'en-tête du tableau. Un dictionnaire Python nommé Des marques est également déclaré dans le script. Les codes de cours sont utilisés comme valeurs clés du dictionnaire. Une liste Python est déclarée pour définir les identifiants des étudiants. Les valeurs clés du dictionnaire sont ajoutées à l'en-tête du tableau, les valeurs de la liste sont ajoutées à la première colonne du tableau et les valeurs du dictionnaire sont ajoutées aux autres colonnes du tableau.

# Importez les modules nécessaires
importer le système
de PyQt5.QtWidgets importent QApplication, QTableWidget, QTableWidgetItem, QDesktopWidget
# Déclarez une variable de dictionnaire avec des marques
marques = 'CSE-401' : [78, 93, 67, 88, 78],
« CSE-404 » : [90, 59, 82, 73, 89],
« CSE-406 » : [81, 80, 74, 83, 67],
'CSE-407' : [81, 80, 98, 83, 72]
classe TableFromList(QTableWidget):
def __init__(self, data, *args):
# Appeler le constructeur parent
QTableWidget.__init__(self, *args)
# Déclarer une liste des IDS étudiants
soi.ID_list = ['0189945', '0154590', '0196734', '0185611', '0178956']
# Définir les configurations nécessaires pour la table
soi.données = données
soi.resizeColumnsToContents()
soi.resizeRowsToContents()
soi.setColumnWidth (0, 100)
pour i dans la plage(4) :
soi.setColumnWidth(i, 80)
soi.setMinimumWidth(400)
soi.setWindowTitle("Marquer la feuille")
# Déclarez la variable pour définir le contenu de l'en-tête
en-têtes = []
en-têtes.ajouter(")
# boucle for pour lire les clés du dictionnaire
pour n, entrez énumérer(trié(self.Les données.clés())):
en-têtes.ajouter (clé)
# boucle for pour lire les valeurs du dictionnaire
pour m, élément dans énumérer(self.données[clé]):
ID = QTableWidgetItem(self.ID_list[m])
soi.setItem(m, 0, ID)
newVal = QTableWidgetItem(str(élément))
soi.setItem(m, n+1, newVal)
# Définir l'étiquette d'en-tête du tableau
soi.setHorizontalHeaderLabels (en-têtes)
# Définir les info-bulles pour les en-têtes
soi.horizontalHeaderItem(1).setToolTip("Multimédia")
soi.horizontalHeaderItem(2).setToolTip("Artificiel Intelligent")
soi.horizontalHeaderItem(3).setToolTip("Base de données avancée")
soi.horizontalHeaderItem(4).setToolTip("Programmation Unix")
# Lire la valeur de la cellule particulière
soi.cliqué.se connecter (se.sur clic)
# Afficher la fenêtre au centre de l'écran
gagner = soi.frameGeometry()
pos = QDesktopWidget().disponibleGéométrie().centre()
gagner.moveCenter(pos)
soi.déplacer (gagner.en haut à gauche())
soi.spectacle()
def on_click(self):
pour ItemVal en soi.Éléments sélectionnés() :
# Lire la valeur de l'en-tête en fonction de la cellule sélectionnée
sujet = soi.horizontalHeaderItem(ItemVal.colonne()).texte()
# Imprimer les informations détaillées de la marque
print("\n", soi.ID_list[ItemVal.row()], " obtenu ", ItemVal.texte(), " dans ", sujet)
# Créer un objet d'application et exécuter l'application
app = QApplication(sys.argv)
table = TableFromList(marques, 5, 5)
tableau.spectacle()
application.exec()

La fenêtre suivante avec le tableau apparaîtra après l'exécution du script ci-dessus.

Conclusion

Ce didacticiel vous a montré comment créer des tables avec des données fixes, des données de dictionnaire et des données de liste à l'aide de deux exemples. Les tableaux peuvent également être créés avec des données dynamiques à l'aide de tableaux de base de données ou d'autres sources de données.

Examen de la souris sans fil Microsoft Sculpt Touch
J'ai lu récemment sur le Microsoft Sculpt Touch souris sans fil et j'ai décidé de l'acheter. Après l'avoir utilisé pendant un certain temps, j'ai déci...
Trackpad et pointeur de souris à l'écran AppyMouse pour tablettes Windows
Les utilisateurs de tablettes ratent souvent le pointeur de la souris, surtout lorsqu'ils ont l'habitude d'utiliser les ordinateurs portables. Les sma...
Le bouton central de la souris ne fonctionne pas sous Windows 10
le bouton central de la souris vous aide à faire défiler de longues pages Web et des écrans contenant beaucoup de données. Si cela s'arrête, et bien v...