Krajta

Jak používat PyQt QTableWidget

Jak používat PyQt QTableWidget
Tabulka se používá k zobrazení dat ve strukturovaném formátu podle řádků a sloupců. The QTableWidget třídu PyQt lze v Pythonu použít k zobrazení dat v tabulkové formě pro úkoly související s výzkumem nebo analýzou dat. Obsah tabulky lze generovat z různých typů úložiště, jako jsou dvourozměrné seznamy nebo tabulky, databázové tabulky, soubory JSON atd.  Jednu nebo více tabulek lze vytvořit pomocí QTableWidget v aplikaci PyQt. Tento kurz ukazuje, jak se používá QTableWidget vytvářet různé typy tabulek pomocí skriptu Python.

Nezbytné metody

The QTableWidget třída zahrnuje mnoho metod k provádění úkolů souvisejících s vytvářením tabulek. Níže jsou vysvětleny některé z běžněji používaných metod této třídy:

Název metody Účel
setRowCount () Používá se k definování počtu řádků.
setColumnCount () Používá se k definování počtu sloupců.
setHorizontalHeaderLabels () Slouží k nastavení štítků záhlaví tabulky.
setItem () Slouží k nastavení hodnoty buňky v tabulce.
resizeColumnsToContents () Slouží k změně velikosti sloupců tabulky na základě obsahu.
resizeRowsToContents () Slouží k změně velikosti řádků tabulky na základě obsahu.
setMinimumWidth () Slouží k nastavení minimální šířky stolu.
setMinimumHeight () Slouží k nastavení minimální výšky stolu.
ukázat() Slouží k zobrazení tabulky.

Použití QTableWidget

Následující části poskytují jednoduché příklady, které vysvětlují, jak vytvořit tabulku v aplikaci PyQt pomocí statických dat a dat seznamu.

Příklad 1: Vytvoření jednoduché tabulky pomocí statických dat

Následující skript vytvoří tabulku statických dat s pěti řádky a čtyřmi sloupci pomocí QTableWidget třída. Dva pro ve skriptu byly použity smyčky s hodnotami rozsahu k přidání statických dat do buněk tabulky. Pozice řádků a sloupců každé buňky byly přidány jako obsah každé buňky. The QDesktopWidget se ve skriptu používá k zobrazení okna s tabulkou ve středu obrazovky.

# Importujte potřebné knihovny
import sys
z PyQt5.QtWidgets importují QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QDesktopWidget
z PyQt5.QtCore import QSize
# Definujte třídu pro vytvoření tabulky se statickými daty
třída SimpleTable (QMainWindow):
def __init __ (vlastní):
# Zavolejte nadřazeného konstruktora
super ().__init __ ()
# Nastavte velikost a název okna
já.setMinimumSize (QSize (420, 150))
já.setWindowTitle ("Jednoduchá tabulka se statickými daty")
# Vytvořte tabulku s potřebnými vlastnostmi
tabulka = QTableWidget (vlastní)
stůl.setColumnCount (4)
stůl.setRowCount (5)
stůl.setMinimumWidth (500)
stůl.setMinimumHeight (500)
# Nastavte záhlaví tabulky
stůl.setHorizontalHeaderLabels (["Header-1", "Header-2", "Header-3", "Header-4"])
# Nastavte hodnoty tabulky
pro i v rozsahu (5):
pro j v rozsahu (4):
stůl.setItem (i, j, QTableWidgetItem ("Row-" + str (i + 1) + ", Col-" + str (j + 1)))
# Změna velikosti řádků a sloupců na základě obsahu
stůl.resizeColumnsToContents ()
stůl.resizeRowsToContents ()
# Zobrazte tabulku
stůl.ukázat()
# Zobrazte okno ve středu obrazovky
vyhrát = já.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().centrum()
vyhrát.moveCenter (pozice)
já.tah (vyhrát.vlevo nahoře())
já.ukázat()
# Vytvořte objekt aplikace a spusťte aplikaci
aplikace = QApplication (sys.argv)
mw = SimpleTable ()
mw.ukázat()
aplikace.exec ()

Zobrazí se následující okno s tabulkou, výše uvedený skript se provede. Podle hodnot pro smyčky, hodnota buňky prvního řádku a prvního sloupce je 'Řádek 1, sloupec 1,„a hodnota buňky posledního řádku a posledního sloupce je“Řádek 5, sloupec 4.''

Příklad 2: Vytvoření tabulky s tipem na nástroj pomocí slovníku a seznamu dat

Následující skript vytvoří tabulku s obsahem slovníku Pythonu a seznam pomocí QTableWidget třída. Skript také přidá textový tip pro záhlaví tabulky. Pojmenovaný slovník Pythonu známky je také deklarován ve skriptu. Kódy kurzu se používají jako klíčové hodnoty slovníku. Seznam Pythonu je deklarován k definování ID studentů. Klíčové hodnoty slovníku se přidají do záhlaví tabulky, hodnoty seznamu se přidají do prvního sloupce tabulky a hodnoty slovníku se přidají do ostatních sloupců tabulky.

# Importujte potřebné moduly
import sys
z PyQt5.QtWidgets importují QApplication, QTableWidget, QTableWidgetItem, QDesktopWidget
# Deklarujte slovní proměnnou se značkami
známky = '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]
třída TableFromList (QTableWidget):
def __init __ (self, data, * args):
# Zavolejte konstruktora rodiče
QTableWidget.__init __ (self, * args)
# Deklarujte seznam IDS studentů
já.ID_list = ['0189945', '0154590', '0196734', '0185611', '0178956']
# Nastavte potřebnou konfiguraci tabulky
já.data = data
já.resizeColumnsToContents ()
já.resizeRowsToContents ()
já.setColumnWidth (0, 100)
pro i v rozsahu (4):
já.setColumnWidth (i, 80)
já.setMinimumWidth (400)
já.setWindowTitle ("Označit list")
# Deklarujte proměnnou pro nastavení obsahu záhlaví
záhlaví = []
záhlaví.připojit(")
# pro smyčku pro čtení kláves slovníku
pro n zadejte výčet (seřazený (vlastní.data.klíče ())):
záhlaví.připojit (klíč)
# for loop pro čtení hodnot slovníku
pro m, položka ve výčtu (vlastní.data [klíč]):
ID = QTableWidgetItem (vlastní.ID_list [m])
já.setItem (m, 0, ID)
newVal = QTableWidgetItem (str (položka))
já.setItem (m, n + 1, newVal)
# Nastavte štítek záhlaví tabulky
já.setHorizontalHeaderLabels (záhlaví)
# Nastavte popisy záhlaví
já.horizontalHeaderItem (1).setToolTip ("Multimédia")
já.horizontalHeaderItem (2).setToolTip ("Umělá inteligence")
já.horizontalHeaderItem (3).setToolTip ("Pokročilá databáze")
já.horizontalHeaderItem (4).setToolTip ("Unixové programování")
# Přečtěte si konkrétní hodnotu buňky
já.klikl.připojit (já.při kliknutí)
# Zobrazte okno ve středu obrazovky
vyhrát = já.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().centrum()
vyhrát.moveCenter (pozice)
já.tah (vyhrát.vlevo nahoře())
já.ukázat()
def on_click (self):
pro ItemVal samostatně.selectedItems ():
# Přečtěte hodnotu záhlaví na základě vybrané buňky
předmět = já.horizontalHeaderItem (ItemVal.sloupec()).text()
# Vytiskněte podrobné informace o značce
print ("\ n", vlastní.ID_list [ItemVal.row ()], "got", ItemVal.text (), „in“, předmět)
# Vytvořte objekt aplikace a spusťte aplikaci
aplikace = QApplication (sys.argv)
tabulka = TableFromList (známky, 5, 5)
stůl.ukázat()
aplikace.exec ()

Po provedení výše uvedeného skriptu se zobrazí následující okno s tabulkou.

Závěr

Tento kurz vám ukázal, jak pomocí dvou příkladů vytvořit tabulky s pevnými daty, daty slovníku a daty seznamu. Tabulky lze také vytvářet s dynamickými daty pomocí databázových tabulek nebo jiných zdrojů dat.

Hry SuperTuxKart pro Linux
SuperTuxKart pro Linux
SuperTuxKart je skvělý titul navržený tak, aby vám ve vašem systému Linux přinesl zážitek Mario Kart zdarma. Je to docela náročné a zábavné hrát, je n...
Hry Výukový program Battle for Wesnoth
Výukový program Battle for Wesnoth
The Battle for Wesnoth je jednou z nejpopulárnějších strategických her s otevřeným zdrojovým kódem, které si v tuto chvíli můžete zahrát. Tato hra se ...
Hry 0 A.D. Tutorial
0 A.D. Tutorial
Z mnoha strategických her venku je 0 A.D. dokáže vyniknout jako komplexní titul a velmi hluboká, taktická hra, přestože je otevřeným zdrojem. Vývoj hr...