Comment utiliser pyqt qTableWidget

Comment utiliser pyqt qTableWidget
Un tableau est utilisé pour afficher des données dans un format structuré, selon les lignes et les colonnes. Le QTableWidget La classe de PYQT peut être utilisée dans Python pour afficher des données sous forme tabulaire pour les tâches liées à la recherche ou à l'analyse des 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 bidimensionnels, 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 de 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 table. Certaines des méthodes les plus couramment utilisées de cette classe sont expliquées ci-dessous:

Nom de méthode But
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 de la table.
setItem () Utilisé pour définir la valeur cellulaire du tableau.
ResizeColumnStoContents () Utilisé pour redimensionner les colonnes du tableau en fonction du contenu.
ResizerowStoConnts () Utilisé pour redimensionner les lignes du tableau en fonction du contenu.
setMinimumWidth () Utilisé pour définir la largeur minimale de la table.
setMinimumHeight () Utilisé pour régler la hauteur minimale de la table.
montrer() Utilisé pour afficher la table.

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 sur les données.

Exemple 1: Créez un tableau simple à l'aide de données statiques

Le script suivant crée un tableau de données statiques avec cinq lignes et quatre colonnes en utilisant le QTableWidget classe. 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 de la table. Les positions de ligne et de colonne de chaque cellule ont été ajoutées comme contenu de chaque cellule. Le Qdesktopwidget est utilisé dans le script pour afficher la fenêtre avec la table au centre de l'écran.

# Importer les bibliothèques nécessaires
importer sys
de pyqt5.QtWidgets Import Qapplication, QmainWindow, QTableWidget, QTableWidgetItem, QdesktopWidget
de pyqt5.Qtcore import QSize
# Définissez la classe pour créer le tableau avec des données statiques
classe Simpleable (QMainWindow):
def __init __ (soi):
# Appelez le constructeur parent
super().__init __ ()
# Définissez la taille et le titre de la fenêtre
soi.setMinimumSize (QSize (420, 150))
soi.setWindowTitle ("Table simple avec des données statiques")
# Créez la table avec les propriétés nécessaires
table = qTableWidget (self)
tableau.setColumnCount (4)
tableau.SetRowCount (5)
tableau.SetMinimumwidth (500)
tableau.setMinimumHeight (500)
# Définissez les en-têtes de table
tableau.SethorizontalHeaderLabels (["Header-1", "Header-2", "Header-3", "Header-4"])
# Définissez les valeurs du tableau
pour I à portée (5):
pour J dans la gamme (4):
tableau.setItem (i, j, qTableWidgetItem ("row-" + str (i + 1) + ", col-" + str (j + 1))))
# Redimensionner des lignes et des colonnes en fonction du contenu
tableau.ResizeColumnStoContents ()
tableau.ResizerowStoConnts ()
# Afficher la table
tableau.montrer()
# Afficher la fenêtre au centre de l'écran
gagner = soi.framegeometry ()
pos = qdesktopwidget ().DisponduGeometry ().centre()
gagner.MOVECENCER (POS)
soi.Déplacer (gagner.en haut à gauche())
soi.montrer()
# Créer un objet d'application et exécuter l'application
app = qapplication (sys.argv)
mw = simpletable ()
MW.montrer()
appliquer.exec ()

La fenêtre suivante avec une table apparaîtra que le script ci-dessus est exécuté. Selon les valeurs du pour Boucles, la valeur cellulaire de la première ligne et la première colonne est 'Row-1, Col-1,'Et la valeur cellulaire de la dernière ligne et de la dernière colonne est'Row-5, Col-4.'

Exemple 2: Créer un tableau avec une pointe d'outil à l'aide de données dictionnaires et répertorier

Le script suivant crée une table avec le contenu d'un dictionnaire Python et de la liste à l'aide du QTableWidget classe. Le script ajoute également un texte de pointe d'outil pour l'en-tête de table. 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 définir les identifiants é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.

# Importer les modules nécessaires
importer sys
de pyqt5.QtWidgets Import Qapplication, QTableWidget, QTableWidgetItem, QdesktopWidget
# Déclarer une variable de dictionnaire avec des marques
Marks = '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):
# Appelez le constructeur parent
QTableWidget.__init __ (self, * args)
# Déclarer une liste des identifiants étudiants
soi.Id_list = ['0189945', '0154590', '0196734', '0185611', '0178956']
# Définissez les configurations nécessaires pour le tableau
soi.données = données
soi.ResizeColumnStoContents ()
soi.ResizerowStoConnts ()
soi.setColumnwidth (0, 100)
Pour I à portée (4):
soi.setColumnwidth (i, 80)
soi.SetMinimumwidth (400)
soi.SetWindowTitle ("Mark Sheet")
# Déclarer la variable pour définir le contenu de l'en-tête
en-têtes = []
têtes.ajouter(")
# pour Loop pour lire les clés du dictionnaire
pour n, clé dans l'énumération (trié (soi.données.clés())):
têtes.ajouter (clé)
# pour Loop pour lire les valeurs du dictionnaire
pour m, article en énumération (soi.data [key]):
Id = qTableWidgetItem (Self.Id_list [m])
soi.setItem (m, 0, id)
newVal = qTableWidgetItem (str (item))
soi.setItem (m, n + 1, newval)
# Définissez l'étiquette d'en-tête de la table
soi.SethorizontalHeaderLabels (en-têtes)
# Définissez les info-bulles pour les en-têtes
soi.HorizontalHeleteritem (1).SettoLtip ("multimédia")
soi.HorizontalHeadItetem (2).SettoLtip ("Artificiel Intelligent")
soi.HorizontalHeaDeritem (3).SettoLtip ("base de données avancée")
soi.HorizontalHeletertem (4).SettoLtip ("Programmation Unix")
# Lisez la valeur cellulaire particulière
soi.cliqué.se connecter (soi.sur clic)
# Afficher la fenêtre au centre de l'écran
gagner = soi.framegeometry ()
pos = qdesktopwidget ().DisponduGeometry ().centre()
gagner.MOVECENCER (POS)
soi.Déplacer (gagner.en haut à gauche())
soi.montrer()
def on_click (self):
pour itemval en soi.selectedItems ():
# Lisez la valeur d'en-tête basée sur la cellule sélectionnée
Sujet = soi.HorizontalHeleDitem (Itemval.colonne()).texte()
# Imprimez les informations détaillées de la marque
imprimer ("\ n", soi.Id_list [itemval.row ()], "got", itemval.text (), "in", sujet)
# Créer un objet d'application et exécuter l'application
app = qapplication (sys.argv)
Table = TableFromlist (Marques, 5, 5)
tableau.montrer()
appliquer.exec ()

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

Conclusion

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