„Python“

Kaip naudotis PyQt QTableWidget

Kaip naudotis PyQt QTableWidget
Lentelė naudojama duomenims rodyti struktūriniu formatu pagal eilutes ir stulpelius. The „QTableWidget“ „PyQt“ klasė gali būti naudojama „Python“, kad duomenys būtų rodomi lentelių pavidalu užduotims, susijusioms su tyrimais ar duomenų analize. Lentelės turinį galima sugeneruoti iš įvairių tipų saugyklos, pavyzdžiui, iš dviejų matmenų sąrašų ar lentelių, duomenų bazių lentelių, JSON failų ir kt.  Vieną ar daugiau lentelių galima sukurti naudojant „QTableWidget“ „PyQt“ programoje. Ši pamoka parodo, kaip naudoti „QTableWidget“ sukurti įvairių tipų lenteles naudojant „Python“ scenarijų.

Būtini metodai

The „QTableWidget“ klasė apima daug metodų, kaip atlikti užduotis, susijusias su lentelės kūrimu. Kai kurie dažniausiai naudojami šios klasės metodai yra paaiškinti toliau:

Metodo pavadinimas Tikslas
setRowCount () Naudojamas eilučių skaičiui apibrėžti.
setColumnCount () Naudojamas stulpelių skaičiui apibrėžti.
setHorizontalHeaderLabels () Naudojamas lentelės antraštės etiketėms nustatyti.
setItem () Naudojamas lentelės langelio vertei nustatyti.
resizeColumnsToContents () Naudojamas lentelės stulpelių dydžiui keisti pagal turinį.
resizeRowsToContents () Naudojamas lentelės eilučių dydžiui keisti pagal turinį.
setMinimumWidth () Naudojamas nustatyti minimalų lentelės plotį.
setMinimumHeight () Naudojamas nustatyti minimalų stalo aukštį.
Rodyti() Naudojamas rodyti lentelę.

„QTableWidget“ naudojimas

Tolesniuose skyriuose pateikiami paprasti pavyzdžiai, paaiškinantys, kaip sukurti lentelę „PyQt“ programoje naudojant statinius duomenis ir sąrašo duomenis.

1 pavyzdys: sukurkite paprastą lentelę naudodami statinius duomenis

Šis scenarijus sukuria statinių duomenų lentelę su penkiomis eilėmis ir keturiais stulpeliais, naudodami „QTableWidget“ klasė. Du dėl scenarijuje buvo naudojamos kilpos su diapazono reikšmėmis, kad statiniai duomenys būtų pridėti prie lentelės langelių. Kiekvienos langelio eilutės ir stulpelio pozicijos buvo pridėtos kaip kiekvienos langelio turinys. The „QDesktopWidget“ yra naudojamas scenarijuje rodyti langą su lentele ekrano centre.

# Importuokite reikalingas bibliotekas
importuoti sistemas
iš PyQt5.„QtWidgets“ importuoja „QApplication“, „QMainWindow“, „QTableWidget“, „QTableWidgetItem“, „QDesktopWidget“
iš PyQt5.„QtCore“ importuoti „QSize“
# Apibrėžkite klasę, kad sukurtumėte lentelę su statiniais duomenimis
klasė „SimpleTable“ (QMainWindow):
def __init __ (savęs):
# Skambinkite pagrindiniam konstruktoriui
super ().__init __ ()
# Nustatykite lango dydį ir pavadinimą
savarankiškai.setMinimumSize (QSize (420, 150))
savarankiškai.setWindowTitle („Paprasta lentelė su statiniais duomenimis“)
# Sukurkite lentelę su būtinomis savybėmis
lentelė = QTableWidget (savarankiškai)
stalo.setColumnCount (4)
stalo.„setRowCount“ (5)
stalo.setMinimumWidth (500)
stalo.setMinimumHeight (500)
# Nustatykite lentelių antraštes
stalo.setHorizontalHeaderLabels (["Antraštė-1", "Antraštė-2", "Antraštė-3", "Antraštė-4"])
# Nustatykite lentelės vertes
i diapazone (5):
j diapazone (4):
stalo.setItem (i, j, QTableWidgetItem ("Row-" + str (i + 1) + ", Col-" + str (j + 1)))
# Eilučių ir stulpelių dydžio keitimas atsižvelgiant į turinį
stalo.resizeColumnsToContents ()
stalo.resizeRowsToContents ()
# Rodyti lentelę
stalo.Rodyti()
# Rodyti langą ekrano centre
laimėti = save.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().centras ()
laimėti.„moveCenter“ (poz.)
savarankiškai.judėti (laimėti.viršuje kairėje())
savarankiškai.Rodyti()
# Sukurkite programos objektą ir vykdykite programą
app = QApplication (sys.argv)
mw = „SimpleTable“ ()
mw.Rodyti()
programa.exec ()

Pasirodys šis langas su lentele. Vykdomas aukščiau pateiktas scenarijus. Pagal vertybes dėl kilpos, pirmosios eilutės ir pirmojo stulpelio langelio vertė yra „1 eilutė, 1 Col,", o paskutinės eilutės ir paskutinio stulpelio langelio vertė yra"5 eilutė, 4 kolona."

2 pavyzdys: sukurkite lentelę naudodamiesi įrankių patarimais, naudodami žodyną ir sąrašo duomenis

Šis scenarijus sukuria lentelę su „Python“ žodyno turiniu ir sąrašu, naudodamas „QTableWidget“ klasė. Scenarijus taip pat prideda įrankio patarimo tekstą lentelės antraštėje. „Python“ žodynas pavadintas ženklų taip pat deklaruojama scenarijuje. Kurso kodai naudojami kaip pagrindinės žodyno vertės. Deklaruojamas „Python“ sąrašas, apibrėžiantis studento ID. Pagrindinės žodyno reikšmės pridedamos prie lentelės antraštės, sąrašo reikšmės pridedamos prie pirmojo lentelės stulpelio, o žodyno vertės - prie kitų lentelės stulpelių.

# Importuokite būtinus modulius
importuoti sistemas
iš PyQt5.„QtWidgets“ importuoja „QApplication“, „QTableWidget“, „QTableWidgetItem“, „QDesktopWidget“
# Paskelbkite žodyno kintamąjį su žymėmis
ženklai = '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]
klasės „TableFromList“ (QTableWidget):
def __init __ (savęs, duomenų, * argumentai):
# Skambinkite tėvų konstruktoriui
„QTableWidget“.__init __ (savęs, * argumentai)
# Paskelbkite studentų IDS sąrašą
savarankiškai.ID_list = ['0189945', '0154590', '0196734', '0185611', '0178956']
# Nustatykite būtinas lentelės konfigūracijas
savarankiškai.duomenys = duomenys
savarankiškai.resizeColumnsToContents ()
savarankiškai.resizeRowsToContents ()
savarankiškai.setColumnWidth (0, 100)
i diapazone (4):
savarankiškai.setColumnWidth (i, 80)
savarankiškai.setMinimumWidth (400)
savarankiškai.setWindowTitle („Pažymėti lapą“)
# Deklaruokite kintamąjį, kad nustatytumėte antraštės turinį
antraštės = []
antraštes.pridėti (")
# for loop skaityti žodyno klavišus
n, įveskite skaičių (surūšiuoti (savarankiškai).duomenis.raktai())):
antraštes.pridėti (raktas)
# for loop skaityti žodyno reikšmes
už m, punktas surašytas (savarankiškas.duomenys [raktas]):
ID = QTableWidgetItem (sav.ID_ sąrašas [m])
savarankiškai.setItem (m, 0, ID)
newVal = QTableWidgetItem (str (elementas))
savarankiškai.setItem (m, n + 1, newVal)
# Nustatykite lentelės antraštės etiketę
savarankiškai.setHorizontalHeaderLabels (antraštės)
# Nustatykite antraščių patarimus
savarankiškai.horizontalHeaderItem (1).„setToolTip“ („Daugialypė terpė“)
savarankiškai.horizontalusHeaderItem (2).setToolTip („Dirbtinis intelektas“)
savarankiškai.horizontalHeaderItem (3).setToolTip („Išplėstinė duomenų bazė“)
savarankiškai.horizontalHeaderItem (4).„setToolTip“ („Unix“ programavimas “)
# Perskaitykite konkrečią langelio vertę
savarankiškai.spustelėjo.prisijungti (savarankiškai.paspaudus)
# Rodyti langą ekrano centre
laimėti = save.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().centras ()
laimėti.„moveCenter“ (poz.)
savarankiškai.judėti (laimėti.viršuje kairėje())
savarankiškai.Rodyti()
def on_click (savarankiškai):
už „ItemVal“.Pasirinkti elementai ():
# Perskaitykite antraštės vertę pagal pasirinktą langelį
subjektas = aš.horizontalHeaderItem (ItemVal.stulpelis ()).tekstas ()
# Atspausdinkite išsamią ženklo informaciją
spausdinti ("\ n", sav.ID_ sąrašas [ItemVal.eilutė ()], „got“, ​​„ItemVal“.tekstas (), „in“, tema)
# Sukurkite programos objektą ir vykdykite programą
app = QApplication (sys.argv)
lentelė = TableFromList (ženklai, 5, 5)
stalo.Rodyti()
programa.exec ()

Vykdžius aukščiau pateiktą scenarijų, pasirodys šis langas su lentele.

Išvada

Ši pamoka parodė, kaip sukurti lenteles su fiksuotais duomenimis, žodyno duomenimis ir duomenų sąrašais, naudojant du pavyzdžius. Lenteles taip pat galima kurti naudojant dinaminius duomenis, naudojant duomenų bazių lenteles ar kitus duomenų šaltinius.

Kaip pakeisti kairįjį ir dešinįjį pelės mygtukus „Windows 10“ kompiuteryje
Gana įprasta, kad visi kompiuterio pelės įrenginiai yra ergonomiškai sukurti dešiniarankiams. Tačiau yra pelių prietaisų, specialiai sukurtų kairiaran...
Mėgdžiokite pelės paspaudimus, užveskite pelės žymeklį naudodami pelę „Clickless Mouse“ sistemoje „Windows 10“
Pelės ar klaviatūros naudojimas netinkamoje laikysenoje, kai naudojama per daug, gali sukelti daug sveikatos problemų, įskaitant įtampą, riešo kanalo ...
Pridėkite pelės gestus prie „Windows 10“ naudodami šiuos nemokamus įrankius
Pastaraisiais metais kompiuteriai ir operacinės sistemos labai išsivystė. Buvo laikas, kai vartotojai turėjo naudoti komandas naršydami per failų tvar...