Potrebne metode
The QTableWidget klasa uključuje mnoge metode za izvršavanje zadataka povezanih s izradom tablica. Neke od najčešće korištenih metoda ove klase objašnjene su u nastavku:
Naziv metode | Svrha |
---|---|
setRowCount () | Koristi se za definiranje broja redaka. |
setColumnCount () | Koristi se za definiranje broja stupaca. |
setHorizontalHeaderLabels () | Koristi se za postavljanje zaglavlja naljepnica tablice. |
setItem () | Koristi se za postavljanje vrijednosti ćelije tablice. |
resizeColumnsToContents () | Koristi se za promjenu veličine stupaca tablice na temelju sadržaja. |
resizeRowsToContents () | Koristi se za promjenu veličine redaka tablice na temelju sadržaja. |
setMinimumWidth () | Koristi se za postavljanje minimalne širine stola. |
setMinimumHeight () | Koristi se za postavljanje minimalne visine stola. |
pokazati() | Koristi se za prikaz tablice. |
Korištenje QTableWidgeta
Sljedeći odjeljci pružaju jednostavne primjere koji objašnjavaju kako stvoriti tablicu u aplikaciji PyQt koristeći statičke podatke i podatke s popisa.
Primjer 1: Stvorite jednostavnu tablicu koristeći statičke podatke
Sljedeća skripta stvara tablicu statičkih podataka s pet redaka i četiri stupca pomoću QTableWidget razred. Dva za petlje s vrijednostima raspona korištene su u skripti za dodavanje statičkih podataka u stanice tablice. Položaji redaka i stupaca svake ćelije dodani su kao sadržaj svake ćelije. The QDesktopWidget koristi se u skripti za prikaz prozora s tablicom u središtu zaslona.
# Uvezite potrebne knjižniceimport sys
iz PyQt5.QtWidgets uvoze QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QDesktopWidget
iz PyQt5.QtCore uvoz QSize
# Definirajte klasu za stvaranje tablice sa statičkim podacima
klasa SimpleTable (QMainWindow):
def __init __ (samo):
# Pozovite nadređeni konstruktor
super().__u tome__()
# Postavite veličinu i naslov prozora
sebe.setMinimumSize (QSize (420, 150))
sebe.setWindowTitle ("Jednostavna tablica sa statičkim podacima")
# Stvorite tablicu s potrebnim svojstvima
tablica = QTableWidget (samo)
stol.setColumnCount (4)
stol.setRowCount (5)
stol.setMinimumWidth (500)
stol.setMinimumHeight (500)
# Postavite zaglavlja tablice
stol.setHorizontalHeaderLabels (["Zaglavlje-1", "Zaglavlje-2", "Zaglavlje-3", "Zaglavlje-4"])
# Postavite vrijednosti tablice
za i u opsegu (5):
za j u rasponu (4):
stol.setItem (i, j, QTableWidgetItem ("Red-" + str (i + 1) + ", Col-" + str (j + 1)))
# Promjena veličine redaka i stupaca na temelju sadržaja
stol.resizeColumnsToContents ()
stol.resizeRowsToContents ()
# Prikažite tablicu
stol.pokazati()
# Prikažite prozor u sredini zaslona
pobijediti = sebe.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().centar()
pobijediti.moveCenter (poz)
sebe.premjestiti (pobijediti.gore lijevo())
sebe.pokazati()
# Stvorite objekt aplikacije i izvršite aplikaciju
app = QApplication (sys.argv)
mw = Jednostavna tablica ()
mw.pokazati()
app.izvršiti ()
Sljedeći prozor s tablicom će se pojaviti gornja skripta se izvršava. Prema vrijednostima za petlje, vrijednost ćelije prvog retka i prvog stupca je 'Red-1, Kol-1,'a vrijednost ćelije zadnjeg retka i zadnjeg stupca je'Red-5, Kol-4.'
Primjer 2: Stvorite tablicu sa savjetima za alat pomoću podataka iz rječnika i popisa
Sljedeća skripta stvara tablicu sa sadržajem Python rječnika i popisa pomoću QTableWidget razred. Skripta također dodaje tekst alata za zaglavlje tablice. Python rječnik s imenom oznake je također deklarirano u skripti. Kodovi tečaja koriste se kao ključne vrijednosti rječnika. Propisan je Python popis za definiranje studentskih ID-ova. Ključne vrijednosti rječnika dodaju se u zaglavlje tablice, vrijednosti popisa dodaju se u prvi stupac tablice, a vrijednosti rječnika u ostale stupce tablice.
# Uvezite potrebne moduleimport sys
iz PyQt5.QtWidgets uvoze QApplication, QTableWidget, QTableWidgetItem, QDesktopWidget
# Deklarirajte varijablu rječnika s oznakama
oznake = '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]
klasa TableFromList (QTableWidget):
def __init __ (self, data, * args):
# Pozovite nadređeni konstruktor
QTableWidget.__init __ (self, * args)
# Objavite popis studentskih IDS-a
sebe.ID_list = ['0189945', '0154590', '0196734', '0185611', '0178956']
# Postavite potrebne konfiguracije za tablicu
sebe.podaci = podaci
sebe.resizeColumnsToContents ()
sebe.resizeRowsToContents ()
sebe.setColumnWidth (0, 100)
za i u rasponu (4):
sebe.setColumnWidth (i, 80)
sebe.setMinimumWidth (400)
sebe.setWindowTitle ("Označi list")
# Deklarirajte varijablu za postavljanje sadržaja zaglavlja
zaglavlja = []
zaglavlja.dodati(")
# for petlja za čitanje tipki rječnika
za n, ključ u enumerate (sortirano (self.podaci.tipke ())):
zaglavlja.dodati (ključ)
# for petlja za čitanje vrijednosti rječnika
za m, stavka u nabrajanju (samo.podaci [ključ]):
ID = QTableWidgetItem (self.ID_list [m])
sebe.setItem (m, 0, ID)
newVal = QTableWidgetItem (str (stavka))
sebe.setItem (m, n + 1, noviVal)
# Postavite zaglavlje tablice tablice
sebe.setHorizontalHeaderLabels (zaglavlja)
# Postavite alate za zaglavlja
sebe.horizontalHeaderItem (1).setToolTip ("Multimedija")
sebe.horizontalHeaderItem (2).setToolTip ("Umjetna inteligencija")
sebe.horizontalHeaderItem (3).setToolTip ("Napredna baza podataka")
sebe.horizontalHeaderItem (4).setToolTip ("Unix programiranje")
# Pročitajte određenu vrijednost ćelije
sebe.kliknuo.povezati (samo.na klik)
# Prikažite prozor u sredini zaslona
pobijediti = sebe.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().centar()
pobijediti.moveCenter (poz)
sebe.premjestiti (pobijediti.gore lijevo())
sebe.pokazati()
def on_click (self):
za ItemVal u sebi.selectedItems ():
# Pročitajte vrijednost zaglavlja na temelju odabrane ćelije
subjekt = ja.horizontalHeaderItem (ItemVal.stupac()).tekst()
# Ispišite detaljne informacije o marki
ispis ("\ n", samostalno.ID_list [ItemVal.row ()], "got", ItemVal.text (), "in", subject)
# Stvorite objekt aplikacije i izvršite aplikaciju
app = QApplication (sys.argv)
table = TableFromList (ocjene, 5, 5)
stol.pokazati()
app.izvršiti ()
Sljedeći prozor s tablicom pojavit će se nakon izvršavanja gornje skripte.
Zaključak
Ovaj vam je vodič pokazao kako stvoriti tablice s fiksnim podacima, podacima iz rječnika i popisima podataka pomoću dva primjera. Tablice se također mogu kreirati s dinamičkim podacima pomoću tablica baze podataka ili drugih izvora podataka.