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 bibliotekimportera 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 modulerimportera 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.