Python

Sådan bruges PyQt QTableWidget

Sådan bruges PyQt QTableWidget
En tabel bruges til at vise data i et struktureret format i henhold til rækker og kolonner. Det QTableWidget klasse af PyQt kan bruges i Python til at vise data i tabelform til opgaver relateret til forskning eller dataanalyse. Indholdet af tabellen kan genereres fra forskellige typer lager, såsom todimensionale lister eller tabeller, databasetabeller, JSON-filer osv.  En eller flere tabeller kan oprettes ved hjælp af QTableWidget i PyQt-applikationen. Denne vejledning viser, hvordan du bruger QTableWidget for at oprette forskellige typer tabeller ved hjælp af Python-script.

Nødvendige metoder

Det QTableWidget klasse indeholder mange metoder til at udføre opgaver i forbindelse med oprettelse af tabeller. Nogle af de mere almindeligt anvendte metoder i denne klasse forklares nedenfor:

Metodenavn Formål
setRowCount () Bruges til at definere antallet af rækker.
setColumnCount () Bruges til at definere antallet af kolonner.
setHorizontalHeaderLabels () Bruges til at indstille overskriftens etiketter i tabellen.
setItem () Bruges til at indstille celleværdien i tabellen.
resizeColumnsToContents () Bruges til at ændre størrelsen på kolonnerne i tabellen baseret på indholdet.
resizeRowsToContents () Bruges til at ændre størrelsen på rækkerne i tabellen baseret på indholdet.
setMinimumWidth () Bruges til at indstille bordets mindste bredde.
setMinimumHøjde () Bruges til at indstille bordets mindste højde.
at vise() Bruges til at vise bordet.

QTableWidget-brug

De følgende afsnit giver enkle eksempler til at forklare, hvordan du opretter en tabel i PyQt-applikationen ved hjælp af statiske data og lister.

Eksempel 1: Opret enkel tabel ved hjælp af statiske data

Følgende script opretter en tabel med statiske data med fem rækker og fire kolonner ved hjælp af QTableWidget klasse. To til sløjfer med intervalværdier er blevet brugt i scriptet til at tilføje de statiske data i tabelcellerne. Række- og søjlepositionerne for hver celle er tilføjet som indholdet af hver celle. Det QDesktopWidget bruges i scriptet til at vise vinduet med tabellen i midten af ​​skærmen.

# Importer nødvendige biblioteker
importer sys
fra PyQt5.QtWidgets importerer QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QDesktopWidget
fra PyQt5.QtCore importerer QSize
# Definer klasse for at oprette tabellen med statiske data
klasse SimpleTable (QMainWindow):
def __init __ (selv):
# Ring til forældrekonstruktøren
super().__i det__()
# Indstil størrelsen og titlen på vinduet
selv.setMinimumSize (QSize (420, 150))
selv.setWindowTitle ("Enkel tabel med statiske data")
# Opret tabellen med nødvendige egenskaber
tabel = QTableWidget (selv)
bord.setColumnCount (4)
bord.setRowCount (5)
bord.setMinimumWidth (500)
bord.setMinimumHøjde (500)
# Indstil tabeloverskrifterne
bord.setHorizontalHeaderLabels (["Header-1", "Header-2", "Header-3", "Header-4"])
# Indstil tabelværdierne
for jeg inden for rækkevidde (5):
for j inden for rækkevidde (4):
bord.setItem (i, j, QTableWidgetItem ("Row-" + str (i + 1) + ", Col-" + str (j + 1)))
# Ændr størrelse på rækkerne og kolonnerne baseret på indholdet
bord.resizeColumnsToContents ()
bord.resizeRowsToContents ()
# Vis tabellen
bord.at vise()
# Vis vinduet i midten af ​​skærmen
vinde = selv.frameGeometry ()
pos = QDesktopWidget ().tilgængeligGeometri ().centrum()
vinde.moveCenter (pos)
selv.flytte (vinde.øverst til venstre())
selv.at vise()
# Opret app-objekt og udfør appen
app = QApplication (sys.argv)
mw = SimpleTable ()
mw.at vise()
app.udføre ()

Følgende vindue med en tabel vises, ovenstående script udføres. I henhold til værdierne i til sløjfer, celleværdien i den første række og den første kolonne er 'Række-1, kol-1,'og celleværdien i den sidste række og sidste kolonne er'Række-5, kol-4.''

Eksempel 2: Opret tabel med værktøjstip ved hjælp af ordbog og listerdata

Det følgende script opretter en tabel med indholdet af en Python-ordbog og en liste ved hjælp af QTableWidget klasse. Scriptet tilføjer også en værktøjstipstekst til tabeloverskriften. En Python-ordbog med navnet mærker er også erklæret i scriptet. Kursuskoderne bruges som nøgleværdier i ordbogen. En Python-liste erklæres for at definere studerende-id'erne. Nøgleværdierne i ordbogen føjes til overskriften på tabellen, værdierne på listen føjes til den første kolonne i tabellen, og værdierne i ordbogen føjes til de andre kolonner i tabellen.

# Importer nødvendige moduler
importer sys
fra PyQt5.QtWidgets importerer QApplication, QTableWidget, QTableWidgetItem, QDesktopWidget
# Erklær en ordbogvariabel med markeringer
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 til forældrekonstruktør
QTableWidget.__init __ (selv, * args)
# Erklær en liste over studerende IDS
selv.ID_list = ['0189945', '0154590', '0196734', '0185611', '0178956']
# Indstil de nødvendige konfigurationer til bordet
selv.data = data
selv.resizeColumnsToContents ()
selv.resizeRowsToContents ()
selv.setColumnWidth (0, 100)
for jeg inden for rækkevidde (4):
selv.setColumnWidth (i, 80)
selv.setMinimumWidth (400)
selv.setWindowTitle ("Mark Sheet")
# Erklær variablen for at indstille overskriftens indhold
overskrifter = []
overskrifter.Tilføj(")
# for loop for at læse nøglerne til ordbogen
for n, indtast opregne (sorteret (selv.data.nøgler ())):
overskrifter.tilføje (nøgle)
# for loop for at læse værdierne i ordbogen
for m, element i enumerate (selv.data [nøgle]):
ID = QTableWidgetItem (selv.ID_liste [m])
selv.setItem (m, 0, ID)
newVal = QTableWidgetItem (str (element))
selv.setItem (m, n + 1, newVal)
# Indstil overskriftens etiket på tabellen
selv.setHorizontalHeaderLabels (headers)
# Indstil værktøjstip til overskrifterne
selv.vandretHeaderItem (1).setToolTip ("Multimedia")
selv.vandretHeaderItem (2).setToolTip ("Kunstig intelligent")
selv.vandretHeaderItem (3).setToolTip ("Avanceret database")
selv.vandretHeaderItem (4).setToolTip ("Unix-programmering")
# Læs den specifikke celleværdi
selv.klikkede.forbinde (selv.on_click)
# Vis vinduet i midten af ​​skærmen
vinde = selv.frameGeometry ()
pos = QDesktopWidget ().tilgængeligGeometri ().centrum()
vinde.moveCenter (pos)
selv.flytte (vinde.øverst til venstre())
selv.at vise()
def on_click (selv):
til ItemVal i sig selv.selectedItems ():
# Læs overskudsværdien baseret på den valgte celle
emne = selv.horizontalHeaderItem (ItemVal.kolonne()).tekst()
# Udskriv detaljerede oplysninger om mærket
print ("\ n", selv.ID_list [ItemVal.række ()], "fik", ItemVal.tekst (), "in", emne)
# Opret app-objekt og udfør appen
app = QApplication (sys.argv)
tabel = TableFromList (mærker, 5, 5)
bord.at vise()
app.udføre ()

Det følgende vindue med tabellen vises, når ovenstående script er udført.

Konklusion

Denne tutorial viste dig, hvordan du opretter tabeller med faste data, ordbogsdata og lister data ved hjælp af to eksempler. Tabeller kan også oprettes med dynamiske data ved hjælp af databasetabeller eller andre datakilder.

Sådan vises FPS-tæller i Linux-spil
Linux-spil fik et stort skub, da Valve annoncerede Linux-support til Steam-klient og deres spil i 2012. Siden da har mange AAA- og indiespil fundet ve...
Sådan downloades og afspilles Sid Meiers Civilization VI på Linux
Introduktion til spillet Civilization 6 er et moderne udtryk for det klassiske koncept, der blev introduceret i serien af ​​Age of Empires-spil. Ideen...
Sådan installeres og afspilles Doom på Linux
Introduktion til undergang Doom-serien opstod i 90'erne efter frigivelsen af ​​den originale Doom. Det var et øjeblikkeligt hit, og fra den tid af har...