Pytonorm

Hur man använder PyQt QTableWidget

Hur man använder PyQt QTableWidget
En tabell används för att visa data i ett strukturerat format, enligt rader och kolumner. De QTableWidget klass av PyQt kan användas i Python för att visa data i tabellform för uppgifter relaterade till forskning eller dataanalys. Innehållet i tabellen kan genereras från olika typer av lagring, såsom tvådimensionella listor eller tabeller, databastabeller, JSON-filer etc.  En eller flera tabeller kan skapas med QTableWidget i PyQt-applikationen. Denna handledning visar hur man använder QTableWidget för att skapa olika typer av tabeller med Python-skript.

Nödvändiga metoder

De QTableWidget klass innehåller många metoder för att utföra uppgifter relaterade till tabellskapande. Några av de vanligaste metoderna i denna klass förklaras nedan:

Metodens namn Syfte
setRowCount () Används för att definiera antalet rader.
setColumnCount () Används för att definiera antalet kolumner.
setHorizontalHeaderLabels () Används för att ställa in rubrikens etiketter i tabellen.
setItem () Används för att ställa in cellvärdet för tabellen.
ändra storlekColumnToContents () Används för att ändra storlek på kolumnerna i tabellen baserat på innehållet.
resizeRowsToContents () Används för att ändra storlek på raderna i tabellen baserat på innehållet.
setMinimumWidth () Används för att ställa in minsta bredd på bordet.
setMinimumHeight () Används för att ställa in minsta höjd på bordet.
show() Används för att visa bordet.

QTableWidget-användning

Följande avsnitt ger enkla exempel för att förklara hur man skapar en tabell i PyQt-applikationen med statisk data och listdata.

Exempel 1: Skapa enkel tabell med statiska data

Följande skript skapar en tabell med statisk data med fem rader och fyra kolumner med hjälp av QTableWidget klass. Två för loopar med intervallvärden har använts i skriptet för att lägga till statisk data i tabellcellerna. Rad- och kolumnpositionerna för varje cell har lagts till som innehåll i varje cell. De QDesktopWidget används i manuset för att visa fönstret med tabellen i mitten av skärmen.

# Importera nödvändiga bibliotek
importera sys
från PyQt5.QtWidgets importerar QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QDesktopWidget
från PyQt5.QtCore importerar QSize
# Definiera klass för att skapa tabellen med statisk data
klass SimpleTable (QMainWindow):
def __init __ (själv):
# Ring föräldrakonstruktören
super().__i det__()
# Ställ in storlek och titel på fönstret
själv.setMinimumSize (QSize (420, 150))
själv.setWindowTitle ("Enkel tabell med statiska data")
# Skapa tabellen med nödvändiga egenskaper
tabell = QTableWidget (själv)
tabell.setColumnCount (4)
tabell.setRowCount (5)
tabell.setMinimumWidth (500)
tabell.setMinimumHeight (500)
# Ställ in bordsrubrikerna
tabell.setHorizontalHeaderLabels (["Header-1", "Header-2", "Header-3", "Header-4"])
# Ställ in tabellvärdena
för jag inom intervallet (5):
för j inom intervallet (4):
tabell.setItem (i, j, QTableWidgetItem ("Row-" + str (i + 1) + ", Col-" + str (j + 1)))
# Ändra storlek på rader och kolumner baserat på innehållet
tabell.ändra storlekColumnToContents ()
tabell.resizeRowsToContents ()
# Visa tabellen
tabell.show()
# Visa fönstret mitt på skärmen
vinna = själv.frameGeometry ()
pos = QDesktopWidget ().tillgängligaGeometri ().Centrum()
vinna.moveCenter (pos)
själv.flytta (vinna.övre vänstra())
själv.show()
# Skapa appobjekt och kör appen
app = QApplication (sys.argv)
mw = SimpleTable ()
mw.show()
app.exec ()

Följande fönster med en tabell visas ovanstående skript körs. Enligt värdena på för loopar, cellvärdet för den första raden och den första kolumnen är 'Rad-1, kol-1,'och cellvärdet för den sista raden och den sista kolumnen är'Rad-5, kol-4.''

Exempel 2: Skapa tabell med verktygstips med hjälp av ordlista och listdata

Följande skript skapar en tabell med innehållet i en Python-ordlista och en lista med QTableWidget klass. Skriptet lägger också till en verktygstips för tabellhuvudet. En Python-ordbok med namnet märken förklaras också i manuset. Kurskoderna används som nyckelvärden i ordboken. En Python-lista förklaras för att definiera student-ID: n. Nyckelvärdena i ordlistan läggs till i rubriken i tabellen, värdena i listan läggs till i den första kolumnen i tabellen och värdena i ordboken läggs till i de andra kolumnerna i tabellen.

# Importera nödvändiga moduler
importera sys
från PyQt5.QtWidgets importerar QApplication, QTableWidget, QTableWidgetItem, QDesktopWidget
# Förklara en ordboksvariabel med märken
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]
klass TableFromList (QTableWidget):
def __init __ (själv, data, * args):
# Ring föräldrakonstruktör
QTableWidget.__init __ (själv, * args)
# Förklara en lista över student-IDS
själv.ID_list = ['0189945', '0154590', '0196734', '0185611', '0178956']
# Ställ in nödvändiga konfigurationer för tabellen
själv.data = data
själv.ändra storlekColumnToContents ()
själv.resizeRowsToContents ()
själv.setColumnWidth (0, 100)
för jag inom intervallet (4):
själv.setColumnWidth (i, 80)
själv.setMinimumWidth (400)
själv.setWindowTitle ("Mark Sheet")
# Förklara variabeln för att ställa in rubrikinnehållet
rubriker = []
rubriker.bifoga(")
# för loop för att läsa nycklarna i ordboken
för n, mata in räkna (sorterad (själv.data.tangenter ())):
rubriker.bifoga (nyckel)
# för loop för att läsa värdena i ordboken
för m, artikel i enumerate (själv.data [nyckel]):
ID = QTableWidgetItem (själv.ID_lista [m])
själv.setItem (m, 0, ID)
newVal = QTableWidgetItem (str (artikel))
själv.setItem (m, n + 1, newVal)
# Ställ in rubrikens etikett för tabellen
själv.setHorizontalHeaderLabels (headers)
# Ställ in verktygstips för rubrikerna
själv.horizontalHeaderItem (1).setToolTip ("Multimedia")
själv.horizontalHeaderItem (2).setToolTip ("Artificiell intelligent")
själv.horizontalHeaderItem (3).setToolTip ("Advanced Database")
själv.horizontalHeaderItem (4).setToolTip ("Unix-programmering")
# Läs det specifika cellvärdet
själv.klickade.ansluta (själv.on_click)
# Visa fönstret mitt på skärmen
vinna = själv.frameGeometry ()
pos = QDesktopWidget ().tillgängligaGeometri ().Centrum()
vinna.moveCenter (pos)
själv.flytta (vinna.övre vänstra())
själv.show()
def on_click (själv):
för ItemVal i sig.selectedItems ():
# Läs rubrikvärdet baserat på den valda cellen
subjekt = själv.horizontalHeaderItem (ItemVal.kolumn()).text()
# Skriv ut detaljerad information om märket
skriva ut ("\ n", själv.ID_list [ItemVal.rad ()], "fick", ItemVal.text (), "in", ämne)
# Skapa appobjekt och kör appen
app = QApplication (sys.argv)
tabell = TableFromList (märken, 5, 5)
tabell.show()
app.exec ()

Följande fönster med tabellen visas efter att ovanstående skript har körts.

Slutsats

Denna handledning visade dig hur du skapar tabeller med fasta data, ordboksdata och listdata med två exempel. Tabeller kan också skapas med dynamisk data med hjälp av databastabeller eller andra datakällor.

Hur du fångar och strömmar din spelsession på Linux
Tidigare betraktades spel bara som en hobby, men med tiden såg spelindustrin en enorm tillväxt när det gäller teknik och antalet spelare. Spelpubliken...
Bästa spel att spela med handspårning
Oculus Quest introducerade nyligen den fantastiska idén om handspårning utan kontroller. Med ett ständigt ökande antal spel och aktiviteter som utför ...
Hur man visar OSD-överlägg i helskärms Linux-appar och -spel
Att spela helskärmsspel eller använda appar i distraktionsfritt helskärmsläge kan avskärma dig från relevant systeminformation som syns i en panel ell...