Piton

Kako se koristi PyQt QTableWidget

Kako se koristi PyQt QTableWidget
Tablica se koristi za prikaz podataka u strukturiranom formatu, prema redovima i stupcima. The QTableWidget klasa PyQt može se koristiti u Pythonu za prikaz podataka u tabličnom obliku za zadatke povezane s istraživanjem ili analizom podataka. Sadržaj tablice može se generirati iz različitih vrsta pohrane, poput dvodimenzionalnih popisa ili tablica, tablica baze podataka, JSON datoteka itd.  Jedna ili više tablica može se stvoriti pomoću QTableWidget u aplikaciji PyQt. Ovaj vodič pokazuje kako se koristi QTableWidget za stvaranje različitih vrsta tablica pomoću Python skripte.

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žnice
import 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 module
import 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.

Kako koristiti AutoKey za automatizaciju Linux igara
AutoKey je uslužni program za automatizaciju radne površine za Linux i X11, programiran na Python 3, GTK i Qt. Koristeći njegovu skriptiranje i MACRO ...
Kako prikazati brojač FPS-a u Linux igrama
Linux gaming dobio je velik poticaj kada je Valve najavio Linux podršku za Steam klijent i njihove igre 2012. godine. Od tada su mnoge AAA i indie igr...
Kako preuzeti i igrati Sid Meier's Civilization VI na Linuxu
Uvod u igru Civilization 6 moderan je pogled na klasični koncept predstavljen u seriji igara Age of Empires. Ideja je bila prilično jednostavna; započ...