So verwenden Sie PYQT QtableWidget

So verwenden Sie PYQT QtableWidget
Eine Tabelle wird verwendet, um Daten in einem strukturierten Format gemäß Zeilen und Spalten anzuzeigen. Der QtableWidget PYQT -Klasse kann in Python verwendet werden. Der Inhalt der Tabelle kann aus verschiedenen Speichertypen generiert werden, z. B. zweidimensionale Listen oder Tabellen, Datenbanktabellen, JSON-Dateien usw. Ein oder mehrere Tabellen können mit Verwendung erstellt werden QtableWidget In der PYQT -Anwendung. Dieses Tutorial zeigt, wie man benutzt QtableWidget Um verschiedene Arten von Tabellen mithilfe von Python -Skript zu erstellen.

Notwendige Methoden

Der QtableWidget Die Klasse enthält viele Methoden zur Ausführung von Aufgaben zur Erstellung von Tabellen im Zusammenhang mit der Tabelle. Einige der am häufigsten verwendeten Methoden dieser Klasse werden unten erklärt:

Methodenname Zweck
setRowCount () Wird verwendet, um die Anzahl der Zeilen zu definieren.
setColumnCount () Wird verwendet, um die Anzahl der Spalten zu definieren.
SethorizontalheaderLabels () Wird verwendet, um die Header -Etiketten der Tabelle einzustellen.
setItem () Wird verwendet, um den Zellwert der Tabelle festzulegen.
resizecolumnStocontents () Wird verwendet, um die Größe der Spalten der Tabelle basierend auf dem Inhalt zu ändern.
ResizerowStocontents () Wird verwendet, um die Zeilen der Tabelle basierend auf dem Inhalt zu ändern.
setminimumwidth () Wird verwendet, um die minimale Breite der Tabelle einzustellen.
setMinimumHeight () Wird verwendet, um die minimale Höhe der Tabelle einzustellen.
zeigen() Wird verwendet, um die Tabelle anzuzeigen.

QtableWidget -Verwendung

In den folgenden Abschnitten werden einfache Beispiele angezeigt, um zu erläutern, wie eine Tabelle in der PYQT -Anwendung mit statischen Daten und Listendaten erstellt werden kann.

Beispiel 1: Erstellen Sie eine einfache Tabelle mit statischen Daten

Das folgende Skript erstellt eine Tabelle statischer Daten mit fünf Zeilen und vier Spalten mit dem QtableWidget Klasse. Zwei für Schleifen mit Bereichswerten wurden im Skript verwendet, um die statischen Daten in die Tabellenzellen hinzuzufügen. Die Zeilen- und Säulenpositionen jeder Zelle wurden als Inhalt jeder Zelle hinzugefügt. Der Qdesktopwidget wird im Skript verwendet, um das Fenster mit der Tabelle in der Mitte des Bildschirms anzuzeigen.

# Notwendige Bibliotheken importieren
Importsystem
von pyqt5.Qtwidgets importieren Qapplication, QMainWindow, QtableWidget, QtableWidgetItem, QDesktopwidget
von pyqt5.QTCORE Import QSIZE
# Klasse definieren, um die Tabelle mit statischen Daten zu erstellen
Klasse SimpleTable (QMainWindow):
def __init __ (selbst):
# Rufen Sie den übergeordneten Konstruktor an
super().__drin__()
# Setzen Sie die Größe und den Titel des Fensters
selbst.setminimumsize (QSIZE (420, 150))
selbst.setWindowtitle ("einfache Tabelle mit statischen Daten")
# Erstellen Sie die Tabelle mit den erforderlichen Eigenschaften
Tabelle = qtableWidget (Selbst)
Tisch.setColumnCount (4)
Tisch.setRowCount (5)
Tisch.setminimumwidth (500)
Tisch.setminimumheight (500)
# Setzen Sie die Tischkopfzeile
Tisch.SethorizontalheaderLabels (["Header-1", "Header-2", "Header-3", "Header-4"])
# Setzen Sie die Tabellenwerte
für i in Reichweite (5):
für j in Reichweite (4):
Tisch.setItem (i, j, qtablewidgetItem ("row-" + str (i + 1) + ", col-" + str (j + 1)))
# Größe der Zeilen und Spalten basierend auf dem Inhalt
Tisch.resizecolumnStocontents ()
Tisch.ResizerowStocontents ()
# Zeigen Sie die Tabelle an
Tisch.zeigen()
# Zeigen Sie das Fenster in der Mitte des Bildschirms an
win = self.Rahmenometrie ()
pos = qdesktopwidget ().Verfügbarkeitsgeometrie ().Center()
gewinnen.Movecenter (pos)
selbst.bewegen (gewinnen.oben links())
selbst.zeigen()
# App -Objekt erstellen und die App ausführen
app = qapplication (sys.argv)
MW = Simpletable ()
MW.zeigen()
App.exec ()

Das folgende Fenster mit einer Tabelle wird angezeigt. Das obige Skript wird ausgeführt. Gemäß den Werten der für Schleifen, der Zellwert der ersten Zeile und die erste Spalte ist 'Row-1, col-1,"Und der Zellwert der letzten Zeile und der letzten Spalte ist"Row-5, Col-4.''

Beispiel 2: Erstellen Sie die Tabelle mit Tool-Tip mithilfe von Wörterbuch- und Listendaten

Das folgende Skript erstellt eine Tabelle mit dem Inhalt eines Python -Wörterbuchs und der Liste mit dem QtableWidget Klasse. Das Skript fügt außerdem einen Werkzeugspitzentext für den Tabellenheader hinzu. Ein Python -Wörterbuch namens Markierungen wird auch im Skript deklariert. Die Kurscodes werden als Schlüsselwerte des Wörterbuchs verwendet. Eine Python -Liste wird erklärt, die Studenten -IDs zu definieren. Die Schlüsselwerte des Wörterbuchs werden zum Header der Tabelle hinzugefügt, die Werte der Liste werden zur ersten Spalte der Tabelle hinzugefügt, und die Werte des Wörterbuchs werden zu den anderen Spalten der Tabelle hinzugefügt.

# Notwendige Module importieren
Importsystem
von pyqt5.Qtwidgets importieren Qapplication, QtableWidget, QtableWidgetItem, QDesktopWidget
# Deklarieren Sie eine Wörterbuchvariable mit Markierungen
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]
Klassentabellefromlist (QtableWidget):
def __init __ (self, data, *args):
# Rufen Sie den Elternkonstruktor an
QtableWidget.__init __ (Selbst, *args)
# Deklarieren Sie eine Liste der Studenten -IDs
selbst.Id_list = ['0189945', '0154590', '0196734', '0185611', '0178956']
# Legen Sie die erforderlichen Konfigurationen für die Tabelle fest
selbst.Daten = Daten
selbst.resizecolumnStocontents ()
selbst.ResizerowStocontents ()
selbst.setColumnwidth (0, 100)
für i in Reichweite (4):
selbst.setColumnwidth (i, 80)
selbst.setminimumwidth (400)
selbst.setWindowtitle ("Markierblatt")
# Deklarieren Sie die Variable, um den Header -Inhalt festzulegen
Header = []
Header.anhängen (")
# Damit Loop die Schlüssel des Wörterbuchs lesen kann
für n, Schlüssel in der zahlreichen (sortiert (selbst selbst).Daten.Schlüssel())):
Header.anhängen (Schlüssel)
# Damit Schleife die Werte des Wörterbuchs lesen kann
für m, Artikel in Aufzählung (Selbst.Daten [Schlüssel]):
Id = qtableWidgetItem (Selbst.Id_list [m])
selbst.setItem (m, 0, id)
newval = qtablewidgetItem (str (item))
selbst.setItem (m, n+1, newval)
# Stellen Sie die Header -Etikett der Tabelle ein
selbst.SethorizontalheaderLabels (Header)
# Stellen Sie die Tooltips für die Header ein
selbst.HorizontalheaderItem (1).Settooltip ("Multimedia")
selbst.HorizontalheaDerItem (2).settooltip ("künstlich intelligent")
selbst.HorizontalheaDerItem (3).settooltip ("Advanced Database")
selbst.HorizontalheaderItem (4).Settooltip ("Unix -Programmierung")
# Lesen Sie den jeweiligen Zellwert
selbst.geklickt.verbinden (Selbst.on_click)
# Zeigen Sie das Fenster in der Mitte des Bildschirms an
win = self.Rahmenometrie ()
pos = qdesktopwidget ().Verfügbarkeitsgeometrie ().Center()
gewinnen.Movecenter (pos)
selbst.bewegen (gewinnen.oben links())
selbst.zeigen()
Def on_click (Selbst):
für Itemval in sich selbst.ausgewählte Artikel():
# Lesen Sie den Header -Wert basierend auf der ausgewählten Zelle
Betreff = Selbst.HorizontalheaDerItem (Itemval.Spalte()).Text()
# Drucken Sie die Detailinformationen der Marke
print ("\ n", Selbst.Id_list [itemVal.Row ()], "Got", Itemval.text (), "in", Betreff)
# App -Objekt erstellen und die App ausführen
app = qapplication (sys.argv)
Tabelle = TabelleFromList (Marks, 5, 5)
Tisch.zeigen()
App.exec ()

Das folgende Fenster mit der Tabelle wird angezeigt, nachdem das obige Skript ausgeführt wurde.

Abschluss

In diesem Tutorial wurde gezeigt, wie Sie Tabellen mit festen Daten, Wörterbuchdaten und Listendaten anhand von zwei Beispielen erstellen können. Tabellen können auch mit dynamischen Daten mithilfe von Datenbanktabellen oder anderen Datenquellen erstellt werden.