Hvordan du bruker pyqt qtablewidget

Hvordan du bruker pyqt qtablewidget
En tabell brukes til å vise data i et strukturert format, i henhold til rader og kolonner. De QtableWidget Klasse av PYQT kan brukes i Python for å vise data i tabellform for oppgaver relatert til forskning eller dataanalyse. Innholdet i tabellen kan genereres fra forskjellige typer lagring, for eksempel todimensjonale lister eller tabeller, databasetabeller, JSON-filer osv. En eller flere tabeller kan opprettes ved hjelp av QtableWidget I PYQT -applikasjonen. Denne opplæringen viser hvordan du bruker QtableWidget For å lage forskjellige typer tabeller ved hjelp av Python -skript.

Nødvendige metoder

De QtableWidget Klassen inkluderer mange metoder for å utføre oppgaver relatert til opprettelse av bord. Noen av de mer brukte metodene i denne klassen er forklart nedenfor:

Metodens navn Hensikt
setrowcount () Brukes til å definere antall rader.
setColumnCount () Brukes til å definere antall kolonner.
SethorizontalHeaderLabels () Brukes til å angi topptabellen til tabellen.
setItem () Brukes til å angi celleverdien på tabellen.
ResizeColumnstocontents () Brukes til å endre størrelse på kolonnene i tabellen basert på innholdet.
ResizerOwstocontents () Brukes til å endre størrelsen på radene på tabellen basert på innholdet.
setMinimumWidth () Brukes til å angi minimumsbredden på tabellen.
setMinimumHeight () Brukes til å angi minimumshøyden på tabellen.
forestilling() Brukes til å vise tabellen.

QtableWidget -bruk

Følgende seksjoner gir enkle eksempler for å forklare hvordan du oppretter en tabell i PYQT -applikasjonen ved hjelp av statiske data og listedata.

Eksempel 1: Lag enkel tabell ved hjelp av statiske data

Følgende skript lager en tabell med statiske data med fem rader og fire kolonner ved hjelp av QtableWidget klasse. To til Løkker med rekkeverdier har blitt brukt i skriptet for å legge til de statiske dataene i tabellcellene. Rad- og kolonneposisjonene til hver celle er lagt til som innholdet i hver celle. De QDESKTOPWIDGET brukes i skriptet for å vise vinduet med tabellen i midten av skjermen.

# Importer nødvendige biblioteker
Importer Sys
Fra PYQT5.QtWidgets import Qapplication, QMainWindow, QtableWidget, QtableWidGetItem, QdesktopWidget
Fra PYQT5.Qtcore import qsize
# Definer klasse for å opprette tabellen med statiske data
Class Simpletable (QMainWindow):
def __init __ (selv):
# Ring foreldrekonstruktøren
super().__i det__()
# Angi størrelsen og tittelen på vinduet
selv-.setMinimumSize (Qsize (420, 150))
selv-.SetWindowTitle ("Enkel tabell med statiske data")
# Lag tabellen med nødvendige egenskaper
Tabell = QtableWidget (selv)
bord.setColumnCount (4)
bord.setrowcount (5)
bord.setMinimumWidth (500)
bord.setminimumHeight (500)
# Angi bordoverskriftene
bord.SethorizontalHeaderLabels (["Header-1", "Header-2", "Header-3", "Header-4"])
# Angi tabellverdiene
for jeg i rekkevidde (5):
for j i rekkevidde (4):
bord.SetItem (I, J, QtableWidGetItem ("Row-" + Str (I + 1) + ", Col-" + Str (J + 1)))
# Endre størrelse på radene og kolonnene basert på innholdet
bord.ResizeColumnstocontents ()
bord.ResizerOwstocontents ()
# Vis tabellen
bord.forestilling()
# Vis vinduet i midten av skjermen
Vinn = selv.rammeometri ()
POS = QDESKTOPWIDGET ().Tilgjengelig GEometry ().senter()
vinne.MOVECENTER (POS)
selv-.Flytt (vinn.øverst til venstre())
selv-.forestilling()
# Lag appobjekt og utfør appen
app = qapplication (sys.argv)
MW = Simpletable ()
MW.forestilling()
app.exec ()

Følgende vindu med en tabell vises skriptet ovenfor er utført. I henhold til verdiene til til loops, celleverdien til den første raden og den første kolonnen er 'ROW-1, COL-1,'Og celleverdien til den siste raden og siste kolonnen er'ROW-5, COL-4.'

Eksempel 2: Lag tabell med verktøytip ved hjelp av ordbok og listedata

Følgende skript lager en tabell med innholdet i en Python -ordbok og liste ved hjelp av QtableWidget klasse. Skriptet legger også til en verktøy-tip-tekst for tabelloverskriften. En Python -ordbok som heter merker er også erklært i skriptet. Kurskodene brukes som nøkkelverdiene i ordboken. En Python -liste er erklært å definere student -ID -ene. Nøkkelverdiene i ordboken legges til tabellens overskrift, listenes verdier blir lagt til den første kolonnen i tabellen, og ordens verdier blir lagt til de andre kolonnene i tabellen.

# Importer nødvendige moduler
Importer Sys
Fra PYQT5.QtWidgets Importer qapplication, QtableWidget, QtableWidGetItem, QDesktopWidget
# Erklære en ordbokvariabel med merker
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]
Klasse TableFromList (QtableWidget):
def __init __ (selv, data, *args):
# Ring foreldrekonstruktør
QtableWidget.__init __ (selv, *args)
# Erklære en liste over student -ID -ene
selv-.Id_list = ['0189945', '0154590', '0196734', '0185611', '0178956']
# Angi de nødvendige konfigurasjonene til tabellen
selv-.data = data
selv-.ResizeColumnstocontents ()
selv-.ResizerOwstocontents ()
selv-.SetColumnWidth (0, 100)
for jeg i rekkevidde (4):
selv-.SetColumnWidth (I, 80)
selv-.setMinimumWidth (400)
selv-.SetWindowTitle ("Mark Sheet")
# Erklære variabelen for å angi overskriftsinnholdet
headers = []
overskrifter.vedlegg (")
# for loop for å lese nøklene til ordboken
for n, tast inn enumerat (sortert (selv.data.Keys ())):
overskrifter.vedlegg (tast)
# for loop for å lese ordens verdier
for m, varen i oppregnet (selv.data [nøkkel]):
Id = qtableWidgetItem (selv.Id_list [m])
selv-.SetItem (M, 0, ID)
newVal = qtableWidGetItem (STR (vare))
selv-.SetItem (M, N+1, NewVal)
# Angi topptabellen til tabellen
selv-.SethorizontalHeaderLabels (overskrifter)
# Angi verktøytipsene for overskriftene
selv-.horisontal headerItem (1).Settoultip ("Multimedia")
selv-.horisontal headerItem (2).Settoultip ("Kunstig intelligent")
selv-.horisontal headerItem (3).Settoultip ("Advanced Database")
selv-.HorisontalHeaderItem (4).Settoultip ("Unix -programmering")
# Les den aktuelle celleverdien
selv-.klikket.Koble til (selv.ved trykk)
# Vis vinduet i midten av skjermen
Vinn = selv.rammeometri ()
POS = QDESKTOPWIDGET ().Tilgjengelig GEometry ().senter()
vinne.MOVECENTER (POS)
selv-.Flytt (vinn.øverst til venstre())
selv-.forestilling()
def on_click (selv):
for itemval i meg selv.SelectedItems ():
# Les overskriftsverdien basert på den valgte cellen
emne = selv.HorisontalHeaderItem (ItemVal.kolonne()).tekst()
# Skriv ut detaljinformasjonen til merket
trykk ("\ n", selv.Id_list [itemval.ROW ()], "GOT", ITEMVAL.tekst (), "i", emne)
# Lag appobjekt og utfør appen
app = qapplication (sys.argv)
Tabell = tabellfromlist (merker, 5, 5)
bord.forestilling()
app.exec ()

Følgende vindu med tabellen vises etter at skriptet ovenfor er utført.

Konklusjon

Denne opplæringen viste deg hvordan du lager tabeller med faste data, ordboksdata og listedata ved hjelp av to eksempler. Tabeller kan også opprettes med dynamiske data ved hjelp av databasetabeller eller andre datakilder.