Notwendige Methoden
Das QTableWidget -Klasse enthält viele Methoden zum Ausführen von Aufgaben im Zusammenhang mit der Tabellenerstellung. Einige der am häufigsten verwendeten Methoden dieser Klasse werden im Folgenden erläutert:
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 Kopfzeilenbeschriftungen der Tabelle festzulegen. |
setItem() | Wird verwendet, um den Zellenwert 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 Größe der Tabellenzeilen basierend auf dem Inhalt zu ändern. |
setMinimumWidth() | Wird verwendet, um die minimale Breite des Tisches einzustellen. |
setMinimumHeight() | Wird verwendet, um die Mindesthöhe des Tisches einzustellen. |
Show() | Wird verwendet, um die Tabelle anzuzeigen. |
QTableWidget-Nutzung
Die folgenden Abschnitte enthalten einfache Beispiele, um zu erklären, wie eine Tabelle in der PyQt-Anwendung mit statischen Daten und Listendaten erstellt wird.
Beispiel 1: Erstellen einer einfachen Tabelle mit statischen Daten
Das folgende Skript erstellt eine Tabelle mit statischen Daten mit fünf Zeilen und vier Spalten unter Verwendung der QTableWidget Klasse. Zwei zum Schleifen mit Bereichswerten wurden im Skript verwendet, um die statischen Daten in die Tabellenzellen einzufügen. Die Zeilen- und Spaltenpositionen jeder Zelle wurden als Inhalt jeder Zelle hinzugefügt. Das QDesktopWidget wird im Skript verwendet, um das Fenster mit der Tabelle in der Mitte des Bildschirms anzuzeigen.
# Importieren Sie die erforderlichen BibliothekenImportsystem
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 auf
Super().__drin__()
# Stellen Sie die Größe und den Titel des Fensters ein
selbst.setMinimumSize(QSize(420, 150))
selbst.setWindowTitle("Einfache Tabelle mit statischen Daten")
# Erstellen Sie die Tabelle mit den erforderlichen Eigenschaften
Tabelle = QTableWidget(selbst)
Tabelle.setColumnCount(4)
Tabelle.setRowCount(5)
Tabelle.setMinimumWidth(500)
Tabelle.setMinimumHeight(500)
# Legen Sie die Tabellenüberschriften fest
Tabelle.setHorizontalHeaderLabels(["Header-1", "Header-2", "Header-3", "Header-4"])
# Tabellenwerte einstellen
für i im Bereich (5):
für j im Bereich (4) :
Tabelle.setItem(i, j, QTableWidgetItem("Row-" + str(i+1) + " , Col-" + str(j+1)))
# Größenänderung der Zeilen und Spalten basierend auf dem Inhalt
Tabelle.resizeColumnsToContents()
Tabelle.resizeRowsToContents()
# Zeigen Sie die Tabelle an
Tabelle.Show()
# Zeigen Sie das Fenster in der Mitte des Bildschirms an
gewinnen = selbst.frameGeometry()
pos = QDesktopWidget().verfügbarGeometrie().Center()
Sieg.moveCenter(pos)
selbst.bewegen (gewinnen).oben links())
selbst.Show()
# App-Objekt erstellen und App ausführen
app = QApplication(sys.Argument)
mw = SimpleTable()
mw.Show()
App.exec()
Das folgende Fenster mit einer Tabelle erscheint das obige Skript wird ausgeführt. Nach den Werten der zum Schleifen, der Zellenwert der ersten Zeile und der ersten Spalte ist 'Reihe-1, Spalte-1,' und der Zellenwert der letzten Zeile und letzten Spalte ist 'Reihe-5, Spalte-4.'
Beispiel 2: Tabelle mit Tool-Tipp mit Wörterbuch- und Listendaten erstellen
Das folgende Skript erstellt eine Tabelle mit dem Inhalt eines Python-Wörterbuchs und einer Liste mit dem QTableWidget Klasse. Das Skript fügt auch einen Tooltip-Text für den Tabellenkopf hinzu. Ein Python-Wörterbuch namens Marken wird auch im Skript deklariert. Die Kurscodes werden als Schlüsselwerte des Wörterbuchs verwendet. Eine Python-Liste wird deklariert, um die Studenten-IDs zu definieren. Die Schlüsselwerte des Wörterbuchs werden in die Kopfzeile der Tabelle eingefügt, die Werte der Liste werden in die erste Spalte der Tabelle eingefügt und die Werte des Wörterbuchs werden in die anderen Spalten der Tabelle eingefügt.
# Erforderliche Module importierenImportsystem
von PyQt5.QtWidgets importieren QApplication, QTableWidget, QTableWidgetItem, QDesktopWidget
# Deklarieren Sie eine Wörterbuchvariable mit Markierungen
Markierungen = '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]
Klasse TableFromList(QTableWidget):
def __init__(self, data, *args):
# Elternkonstruktor aufrufen
QTableWidget.__init__(selbst, *args)
# Deklarieren Sie eine Liste der Schüler-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 im Bereich (4):
selbst.setColumnWidth(i, 80)
selbst.setMinimumWidth(400)
selbst.setWindowTitle("Blatt markieren")
# Deklarieren Sie die Variable, um den Header-Inhalt festzulegen
Überschriften = []
Überschriften.anhängen(")
# for-Schleife zum Lesen der Schlüssel des Wörterbuchs
für n geben Sie enumerate(sorted(self.Daten.Schlüssel())):
Überschriften.anhängen (Schlüssel)
# for-Schleife, um die Werte des Wörterbuchs zu lesen
for m, item in enumerate(self.Daten[Schlüssel]):
ID = QTableWidgetItem(self.ID_Liste[m])
selbst.setItem(m, 0, ID)
newVal = QTableWidgetItem(str(item))
selbst.setItem(m, n+1, newVal)
# Setze die Kopfzeile der Tabelle
selbst.setHorizontalHeaderLabels(header)
# Legen Sie die Tooltips für die Kopfzeilen fest
selbst.horizontalHeaderItem(1).setToolTip("Multimedia")
selbst.horizontalHeaderItem(2).setToolTip("Künstliche Intelligenz")
selbst.horizontalHeaderItem(3).setToolTip("Erweiterte Datenbank")
selbst.horizontalHeaderItem(4).setToolTip("Unix-Programmierung")
# Lesen Sie den jeweiligen Zellenwert aus
selbst.angeklickt.verbinden (selbst.on_click)
# Zeigen Sie das Fenster in der Mitte des Bildschirms an
gewinnen = selbst.frameGeometry()
pos = QDesktopWidget().verfügbarGeometrie().Center()
Sieg.moveCenter(pos)
selbst.bewegen (gewinnen.oben links())
selbst.Show()
def on_click(self):
für ItemVal in self.ausgewählte Gegenstände():
# Lesen Sie den Header-Wert basierend auf der ausgewählten Zelle
Betreff = selbst.horizontalHeaderItem(ItemVal.Säule()).Text()
# Drucken Sie die Detailinformationen der Marke
print("\n", selbst.ID_list[ItemVal.row()], " got ", ItemVal.text(), "in", Betreff)
# App-Objekt erstellen und App ausführen
app = QApplication(sys.Argument)
table = TableFromList(Markierungen, 5, 5)
Tabelle.Show()
App.exec()
Das folgende Fenster mit der Tabelle erscheint, nachdem das obige Skript ausgeführt wurde.
Fazit
In diesem Tutorial wurde anhand von zwei Beispielen gezeigt, wie Sie Tabellen mit festen Daten, Wörterbuchdaten und Listendaten erstellen. Tabellen können auch mit dynamischen Daten mithilfe von Datenbanktabellen oder anderen Datenquellen erstellt werden.