Python

Kuidas kasutada PyQt QTableWidget

Kuidas kasutada PyQt QTableWidget
Tabelit kasutatakse andmete kuvamiseks struktureeritud vormingus vastavalt ridadele ja veergudele. The QTableWidget klassi PyQt saab Pythonis kasutada andmete kuvamiseks tabelina teadusuuringute või andmete analüüsiga seotud ülesannete jaoks. Tabeli sisu saab genereerida erinevat tüüpi salvestusruumidest, nagu kahemõõtmelised loendid või tabelid, andmebaasitabelid, JSON-failid jne.  Kasutades saab luua ühe või mitu tabelit QTableWidget rakenduses PyQt. See õpetus näitab, kuidas seda kasutada QTableWidget luua Pythoni skripti abil erinevat tüüpi tabeleid.

Vajalikud meetodid

The QTableWidget klass sisaldab palju meetodeid tabeli loomisega seotud ülesannete täitmiseks. Mõned selle klassi sagedamini kasutatavad meetodid on selgitatud allpool:

Meetodi nimi Eesmärk
setRowCount () Kasutatakse ridade arvu määramiseks.
setColumnCount () Kasutatakse veergude arvu määratlemiseks.
setHorizontalHeaderLabels () Kasutatakse tabeli päisesiltide määramiseks.
setItem () Kasutatakse tabeli lahtri väärtuse määramiseks.
resizeColumnsToContents () Kasutatakse tabeli veergude suuruse muutmiseks vastavalt sisule.
resizeRowsToContents () Kasutatakse tabeli ridade suuruse muutmiseks vastavalt sisule.
setMinimumWidth () Kasutatakse tabeli minimaalse laiuse määramiseks.
setMinimumHeight () Kasutatakse laua minimaalse kõrguse määramiseks.
näita () Kasutatakse tabeli kuvamiseks.

QTableWidgeti kasutamine

Järgmistes jaotistes on lihtsad näited selgitamaks, kuidas luua staatiliste andmete ja loendiandmete abil PyQt rakenduses tabel.

Näide 1: staatiliste andmete abil saate luua lihtsa tabeli

Järgmine skript loob staatiliste andmete tabeli, millel on viis rida ja neli veergu, kasutades QTableWidget klass. Kaks eest Staatiliste andmete lisamiseks tabelirakkudesse on skriptis kasutatud vahemikuväärtustega tsükleid. Iga lahtri rea- ja veerupositsioonid on lisatud iga lahtri sisuks. The QDesktopWidget kasutatakse skriptis akna kuvamiseks, kus tabel on ekraani keskel.

# Importige vajalikud teegid
impordi süsteem
alates PyQt5.QtWidgetid impordivad QApplicationi, QMainWindowi, QTableWidgetit, QTableWidgetItemit, QDesktopWidgeti
alates PyQt5.QtCore'i import QSize
# Määrake klass staatiliste andmetega tabeli loomiseks
klass SimpleTable (QMainWindow):
def __init __ (ise):
# Helistage vanemkonstruktorile
Super().__selles__()
# Määrake akna suurus ja pealkiri
ise.setMinimumSize (QSize (420, 150))
ise.setWindowTitle ("Staatiliste andmetega lihtne tabel")
# Looge tabel vajalike omadustega
tabel = QTableWidget (ise)
tabel.setColumnCount (4)
tabel.setRowCount (5)
tabel.setMinimumWidth (500)
tabel.setMinimumHeight (500)
# Määrake tabeli päised
tabel.setHorizontalHeaderLabels (["Päis-1", "Päis-2", "Päis-3", "Päis-4"])
# Määrake tabeli väärtused
i jaoks vahemikus (5):
j jaoks vahemikus (4):
tabel.setItem (i, j, QTableWidgetItem ("Rida-" + str (i + 1) + ", Col-" + str (j + 1)))
# Ridade ja veergude suuruse muutmine sisu järgi
tabel.resizeColumnsToContents ()
tabel.resizeRowsToContents ()
# Kuva tabel
tabel.näita ()
# Kuva aken ekraani keskel
võit = ise.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().Keskus()
võita.moveCenter (pos)
ise.liikuma (võitma.üleval vasakul())
ise.näita ()
# Loo rakenduse objekt ja käivitage rakendus
app = QApplication (sys.argv)
mw = SimpleTable ()
mw.näita ()
rakendus.exec ()

Järgmine aken koos tabeliga ilmub ülaltoodud skript käivitatakse. Vastavalt väärtustele eest silmuseid, on esimese rea ja esimese veeru lahtri väärtus '1. rida, veerg 1,'ning viimase rea ja viimase veeru lahtri väärtus on'5. rida, veerg 4."

Näide 2: tabeli loomine tööriistanõuandega, kasutades sõnastikku ja loendiandmeid

Järgmine skript loob tabeli Pythoni sõnaraamatu ja loendi sisuga, kasutades QTableWidget klass. Skript lisab tabeli päisesse ka tööriistanõu teksti. Nimega Pythoni sõnastik märgid deklareeritakse ka stsenaariumis. Kursuse koode kasutatakse sõnastiku põhiväärtustena. Üliõpilaste ID-de määratlemiseks on deklareeritud Pythoni loend. Sõnaraamatu põhiväärtused lisatakse tabeli päisesse, loendi väärtused lisatakse tabeli esimesse veergu ja sõnastiku väärtused lisatakse tabeli muudesse veergudesse.

# Impordi vajalikud moodulid
impordi süsteem
alates PyQt5.QtWidgetid impordivad QApplicationi, QTableWidgeti, QTableWidgetItemit, QDesktopWidgeti
# Deklareeri märkidega sõnastiku muutuja
hinnad = '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]
klassi TableFromList (QTableWidget):
def __init __ (ise, andmed, * args):
# Kõne vanemkonstruktorile
QTableWidget.__init __ (ise, * vaidleb)
# Deklareerige õpilaste isikutunnistuste loend
ise.ID_list = ['0189945', '0154590', '0196734', '0185611', '0178956']
# Määrake tabelis vajalikud konfiguratsioonid
ise.andmed = andmed
ise.resizeColumnsToContents ()
ise.resizeRowsToContents ()
ise.setColumnWidth (0, 100)
i jaoks vahemikus (4):
ise.setColumnWidth (i, 80)
ise.setMinimumWidth (400)
ise.setWindowTitle ("Märgi leht")
# Päise sisu määramiseks deklareerige muutuja
päised = []
päised.lisa (")
# for loop sõnaraamatu võtmete lugemiseks
n jaoks sisestage loend (sorted (self.andmed.võtmed ())):
päised.lisa (võti)
# for loop sõnaraamatu väärtuste lugemiseks
m jaoks üksus loenduses (ise.andmed [võti]):
ID = QTableWidgetItem (ise.ID_loend [m])
ise.setItem (m, 0, ID)
newVal = QTableWidgetItem (str (element))
ise.setItem (m, n + 1, newVal)
# Määrake tabeli päise silt
ise.setHorizontalHeaderLabels (päised)
# Määrake päiste tööriistavihjed
ise.horizontalHeaderItem (1).setToolTip ("Multimeedia")
ise.horizontalHeaderItem (2).setToolTip ("tehisintellekt")
ise.horizontalHeaderItem (3).setToolTip ("Täpsem andmebaas")
ise.horizontalHeaderItem (4).setToolTip ("Unixi programmeerimine")
# Loe konkreetse lahtri väärtust
ise.klõpsatud.ühendama (ise.on_click)
# Kuva aken ekraani keskel
võit = ise.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().Keskus()
võita.moveCenter (pos)
ise.liikuma (võitma.üleval vasakul())
ise.näita ()
def on_click (ise):
üksuse ItemVal jaoks.valitud üksused ():
# Lugege päise väärtust valitud lahtri põhjal
subjekt = ise.horizontalHeaderItem (ItemVal.veerg()).tekst ()
# Printige märgi üksikasjalik teave
print ("\ n", ise.ID_loend [ItemVal.rida ()], "sai", ItemVal.tekst (), "sisse", teema)
# Loo rakenduse objekt ja käivitage rakendus
app = QApplication (sys.argv)
tabel = TableFromList (märgid, 5, 5)
tabel.näita ()
rakendus.exec ()

Pärast ülaltoodud skripti käivitamist ilmub järgmine aken koos tabeliga.

Järeldus

See õpetus näitas, kuidas luua kahe näite abil fikseeritud andmetega tabeleid, sõnaraamatu andmeid ja andmete loendit. Tabeleid saab luua ka dünaamiliste andmetega, kasutades andmebaasitabeleid või muid andmeallikaid.

Kuidas muuta hiire ja puuteplaatide kerimise suund Windows 10-s ümber
Hiir ja PuuteplaatNeed muudavad arvutamise mitte ainult lihtsaks, vaid ka tõhusamaks ja vähem aeganõudvaks. Me ei kujuta ette elu ilma nende seadmetet...
Kuidas muuta hiirekursori ja kursori suurust, värvi ja skeemi Windows 10-s
Windows 10 hiirekursor ja kursor on operatsioonisüsteemi väga olulised aspektid. Seda võib öelda ka teiste opsüsteemide kohta, nii et tegelikult pole ...
Tasuta ja avatud lähtekoodiga mängumootorid Linuxi mängude arendamiseks
See artikkel hõlmab loetelu tasuta ja avatud lähtekoodiga mängumootoritest, mida saab kasutada 2D- ja 3D-mängude arendamiseks Linuxis. Selliseid mängu...