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 bibliotekasimportuoti 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 moduliusimportuoti 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.