Python

Kako uporabljati PyQt QTableWidget

Kako uporabljati PyQt QTableWidget
Tabela se uporablja za prikaz podatkov v strukturirani obliki glede na vrstice in stolpce. The QTableWidget razred PyQt se v Pythonu lahko uporablja za prikaz podatkov v tabelarni obliki za naloge, povezane z raziskavami ali analizo podatkov. Vsebino tabele lahko generiramo iz različnih vrst pomnilnika, kot so dvodimenzionalni seznami ali tabele, tabele baz podatkov, datoteke JSON itd.  Z uporabo lahko ustvarite eno ali več tabel QTableWidget v aplikaciji PyQt. Ta vadnica prikazuje, kako uporabljati QTableWidget za ustvarjanje različnih vrst tabel s pomočjo skripta Python.

Potrebne metode

The QTableWidget razred vključuje veliko metod za izvajanje nalog, povezanih z ustvarjanjem tabel. Nekatere najpogosteje uporabljene metode tega razreda so razložene spodaj:

Ime metode Namen
setRowCount () Uporablja se za določanje števila vrstic.
setColumnCount () Uporablja se za določanje števila stolpcev.
setHorizontalHeaderLabels () Uporablja se za nastavitev nalepk glave tabele.
setItem () Uporablja se za nastavitev vrednosti celice tabele.
resizeColumnsToContents () Uporablja se za spreminjanje velikosti stolpcev tabele glede na vsebino.
resizeRowsToContents () Uporablja se za spreminjanje velikosti vrstic tabele glede na vsebino.
setMinimumWidth () Uporablja se za nastavitev najmanjše širine tabele.
setMinimumHeight () Uporablja se za nastavitev najmanjše višine mize.
pokaži () Uporablja se za prikaz tabele.

QTableWidget Uporaba

Naslednji razdelki ponujajo preproste primere, ki pojasnjujejo, kako ustvariti tabelo v aplikaciji PyQt z uporabo statičnih podatkov in podatkov s seznama.

Primer 1: Ustvarite preprosto tabelo s pomočjo statičnih podatkov

Naslednji skript ustvari tabelo statičnih podatkov s petimi vrsticami in štirimi stolpci z uporabo QTableWidget razred. Dva za zanke z vrednostmi obsega so bile v skriptu uporabljene za dodajanje statičnih podatkov v celice tabele. Položaji vrstic in stolpcev vsake celice so bili dodani kot vsebina vsake celice. The QDesktopWidget se v skriptu uporablja za prikaz okna s tabelo na sredini zaslona.

# Uvozite potrebne knjižnice
uvoz sys
iz PyQt5.QtWidgets uvozijo QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QDesktopWidget
iz PyQt5.QtCore uvoz QSize
# Določite razred za ustvarjanje tabele s statičnimi podatki
razred SimpleTable (QMainWindow):
def __init __ (samo):
# Pokliči nadrejeni konstruktor
super ().__v__()
# Nastavite velikost in naslov okna
sebe.setMinimumSize (QSize (420, 150))
sebe.setWindowTitle ("Preprosta tabela s statičnimi podatki")
# Ustvarite tabelo s potrebnimi lastnostmi
tabela = QTableWidget (samo)
tabela.setColumnCount (4)
tabela.setRowCount (5)
tabela.setMinimumWidth (500)
tabela.setMinimumHeight (500)
# Nastavite glave tabele
tabela.setHorizontalHeaderLabels (["Glava-1", "Glava-2", "Glava-3", "Glava-4"])
# Nastavite vrednosti tabele
za i v območju (5):
za j v območju (4):
tabela.setItem (i, j, QTableWidgetItem ("Row-" + str (i + 1) + ", Col-" + str (j + 1)))
# Spreminjanje velikosti vrstic in stolpcev glede na vsebino
tabela.resizeColumnsToContents ()
tabela.resizeRowsToContents ()
# Prikažite tabelo
tabela.pokaži ()
# Prikažite okno na sredini zaslona
zmaga = sam.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().center()
zmaga.moveCenter (poz)
sebe.premakniti (zmagati.topLeft ())
sebe.pokaži ()
# Ustvari objekt aplikacije in zaženi aplikacijo
app = QApplication (sys.argv)
mw = SimpleTable ()
mw.pokaži ()
app.exec ()

Naslednje okno s tabelo se bo pojavilo, zgornji skript se izvede. Glede na vrednosti za zanke, vrednost celice prve vrstice in prvega stolpca je 'Vrstica-1, stolpec-1,'in vrednost celice zadnje vrstice in zadnjega stolpca je'Vrstica-5, Col-4."

2. primer: Ustvarite tabelo z nasveti za orodje z uporabo podatkov slovarja in seznama

Naslednji skript ustvari tabelo z vsebino slovarja Python in seznam s pomočjo QTableWidget razred. Skript doda tudi besedilo nasveta za glavo tabele. Slovar Python z imenom znamke je navedeno tudi v scenariju. Kode tečajev se uporabljajo kot ključne vrednosti slovarja. Za določitev ID-jev študentov je določen seznam Python. Ključne vrednosti slovarja se dodajo v glavo tabele, vrednosti seznama se dodajo v prvi stolpec tabele, vrednosti slovarja pa v druge stolpce tabele.

# Uvozite potrebne module
uvoz sys
iz PyQt5.QtWidgets uvozi QApplication, QTableWidget, QTableWidgetItem, QDesktopWidget
# Razglasite spremenljivko slovarja z oznakami
znamke = '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]
class TableFromList (QTableWidget):
def __init __ (self, data, * args):
# Pokliči nadrejeni konstruktor
QTableWidget.__init __ (self, * args)
# Navedite seznam študentskih IDS
sebe.ID_list = ['0189945', '0154590', '0196734', '0185611', '0178956']
# Nastavite potrebne konfiguracije za mizo
sebe.podatki = podatki
sebe.resizeColumnsToContents ()
sebe.resizeRowsToContents ()
sebe.setColumnWidth (0, 100)
za i v območju (4):
sebe.setColumnWidth (i, 80)
sebe.setMinimumWidth (400)
sebe.setWindowTitle ("Označi list")
# Razglasite spremenljivko, da nastavite vsebino glave
glave = []
glave.dodaj (")
# for zanka za branje tipk slovarja
za n, vnesite enumerate (razvrščeno (self.podatkov.tipke ())):
glave.dodaj (ključ)
# for zanka za branje vrednosti slovarja
za m, postavka v naštevanju (self.podatki [ključ]):
ID = QTableWidgetItem (self.ID_list [m])
sebe.setItem (m, 0, ID)
newVal = QTableWidgetItem (str (element))
sebe.setItem (m, n + 1, newVal)
# Nastavite oznako glave tabele
sebe.setHorizontalHeaderLabels (glave)
# Nastavite nasvete za glave
sebe.horizontalHeaderItem (1).setToolTip ("Multimedija")
sebe.horizontalHeaderItem (2).setToolTip ("Umetna inteligenca")
sebe.horizontalHeaderItem (3).setToolTip ("Napredna baza podatkov")
sebe.horizontalHeaderItem (4).setToolTip ("Unix programiranje")
# Preberite določeno vrednost celice
sebe.kliknili.povezati (samo.on_click)
# Prikažite okno na sredini zaslona
zmaga = sam.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().center()
zmaga.moveCenter (poz)
sebe.premakniti (zmagati.topLeft ())
sebe.pokaži ()
def on_click (samo):
za ItemVal v sebi.selectedItems ():
# Preberite vrednost glave na podlagi izbrane celice
subjekt = jaz.horizontalHeaderItem (ItemVal.stolpec ()).besedilo ()
# Natisnite podrobne informacije o znamki
print ("\ n", samo.ID_list [ItemVal.row ()], "got", ItemVal.text (), "in", subject)
# Ustvari objekt aplikacije in zaženi aplikacijo
app = QApplication (sys.argv)
table = TableFromList (ocene, 5, 5)
tabela.pokaži ()
app.exec ()

Po izvedbi zgornjega skripta se prikaže naslednje okno s tabelo.

Zaključek

Ta vadnica vam je pokazala, kako z dvema primeroma ustvarite tabele s fiksnimi podatki, podatki slovarja in seznamom. Tabele lahko ustvarite tudi z dinamičnimi podatki z uporabo tabel zbirke podatkov ali drugih podatkovnih virov.

Kako prikazati prekrivanje zaslonskega menija v celozaslonskih aplikacijah in igrah za Linux
Igranje celozaslonskih iger ali uporaba aplikacij v celozaslonskem načinu brez motenj vam lahko odreže ustrezne sistemske informacije, ki so vidne na ...
Top 5 kartic za zajemanje iger
Vsi smo v YouTubu videli in oboževali pretakanje iger. PewDiePie, Jakesepticye in Markiplier so le nekateri izmed najboljših igralcev, ki so zaslužili...
Kako razviti igro na Linuxu
Pred desetletjem le malo uporabnikov Linuxa napoveduje, da bo njihov najljubši operacijski sistem nekoč priljubljena igralna platforma za komercialne ...