Szükséges módszerek
A QTableWidget osztály számos módszert tartalmaz a táblázatkészítéssel kapcsolatos feladatok végrehajtására. Ennek az osztálynak a leggyakrabban alkalmazott módszereit az alábbiakban ismertetjük:
Módszer neve | Célja |
---|---|
setRowCount () | A sorok számának meghatározására szolgál. |
setColumnCount () | Az oszlopok számának meghatározására szolgál. |
setHorizontalHeaderLabels () | A táblázat fejléc címkéinek beállítására szolgál. |
setItem () | A táblázat cellaértékének beállítására szolgál. |
resizeColumnsToContents () | A táblázat oszlopainak átméretezésére szolgál a tartalom alapján. |
resizeRowsToContents () | A táblázat sorainak átméretezésére szolgál a tartalom alapján. |
setMinimumWidth () | Az asztal minimális szélességének beállítására szolgál. |
setMinimumHeight () | Az asztal minimális magasságának beállítására szolgál. |
előadás() | A táblázat megjelenítésére szolgál. |
QTableWidget használata
A következő szakaszok egyszerű példákat tartalmaznak arra vonatkozóan, hogyan lehet táblázatot létrehozni a PyQt alkalmazásban statikus adatok és adatok listájának felhasználásával.
1. példa: Készítsen egyszerű táblázatot statikus adatok felhasználásával
A következő parancsfájl statikus adatokból álló táblázatot készít öt sorral és négy oszloppal a QTableWidget osztály. Kettő mert tartományi értékekkel rendelkező ciklusokat használtak a szkriptben a statikus adatok hozzáadásához a táblázat celláihoz. Az egyes cellák sor- és oszloppozícióit hozzáadtuk az egyes cellák tartalmához. A QDesktopWidget a szkriptben az ablak megjelenítésére szolgál, a táblával a képernyő közepén.
# Importálja a szükséges könyvtárakatimport sys
a PyQt5-ből.A QtWidgets importálja a QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QDesktopWidget
a PyQt5-ből.QtCore importálja a QSize-t
# Definiálja az osztályt a statikus adatokkal rendelkező tábla létrehozásához
osztály SimpleTable (QMainWindow):
def __init __ (én):
# Hívja a szülő konstruktort
szuper().__benne__()
# Állítsa be az ablak méretét és címét
maga.setMinimumSize (QSize (420, 150))
maga.setWindowTitle ("Egyszerű táblázat statikus adatokkal")
# Hozzon létre egy táblázatot a szükséges tulajdonságokkal
tábla = QTableWidget (self)
asztal.setColumnCount (4)
asztal.setRowCount (5)
asztal.setMinimumWidth (500)
asztal.setMinimumHeight (500)
# Állítsa be a táblázat fejlécét
asztal.setHorizontalHeaderLabels (["Fejléc-1", "Fejléc-2", "Fejléc-3", "Fejléc-4"])
# Állítsa be a táblázat értékeit
i-re az (5) tartományban:
j esetén a (4) tartományban:
asztal.setItem (i, j, QTableWidgetItem ("Sor-" + str (i + 1) + ", Col-" + str (j + 1)))
# A sorok és oszlopok átméretezése a tartalom alapján
asztal.resizeColumnsToContents ()
asztal.resizeRowsToContents ()
# Jelenítse meg a táblázatot
asztal.előadás()
# Jelenítse meg az ablakot a képernyő közepén
győzelem = én.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().központ()
győzelem.moveCenter (pos)
maga.mozogni (nyerni.bal felső())
maga.előadás()
# Hozzon létre alkalmazásobjektumot és hajtsa végre az alkalmazást
app = QApplication (sys.argv)
mw = SimpleTable ()
mw.előadás()
kb.exec ()
A következő ablak egy táblával jelenik meg, a fenti parancsfájl végrehajtásra kerül. A. Értékei szerint mert ciklusok esetén az első sor és az első oszlop cellájának értéke '1. sor, 1. oszlop,"és az utolsó sor és utolsó oszlop cellájának értéke"5. sor, 4. oszlop."
2. példa: Táblázat készítése eszköztippel a szótár és a lista adatok használatával
A következő szkript létrehoz egy táblázatot egy Python szótár és lista tartalmával a QTableWidget osztály. A szkript egy eszköztipp szöveget is hozzáad a táblázat fejlécéhez. Nevű Python szótár jelek a forgatókönyv is deklarálja. A kurzus kódokat használják a szótár kulcsértékeként. A hallgatói azonosítók meghatározásához Python-lista van deklarálva. A szótár kulcsértékei hozzáadódnak a táblázat fejlécéhez, a lista értékei a táblázat első oszlopához, a szótár értékei pedig a táblázat többi oszlopához.
# Importálja a szükséges modulokatimport sys
a PyQt5-ből.A QtWidgets importálja a QApplication, QTableWidget, QTableWidgetItem, QDesktopWidget
# Jelöljön ki egy szótári változót jelekkel
jegyek = '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]
class TableFromList (QTableWidget):
def __init __ (én, adatok, * érvek):
# Hívja a szülő konstruktort
QTableWidget.__init __ (ön, * érvel)
# Nyújtsa be a hallgatói igazolványok listáját
maga.ID_list = ['0189945', '0154590', '0196734', '0185611', '0178956']
# Állítsa be a szükséges konfigurációkat az asztalhoz
maga.adatok = adatok
maga.resizeColumnsToContents ()
maga.resizeRowsToContents ()
maga.setColumnWidth (0, 100)
i-re a (4) tartományban:
maga.setColumnWidth (i, 80)
maga.setMinimumWidth (400)
maga.setWindowTitle ("Lap megjelölése")
# Nyissa meg a változót a fejléc tartalmának beállításához
fejléc = []
fejlécek.mellékel(")
# for loop a szótár kulcsainak elolvasásához
n esetén írja be a felsorolást (rendezve (saját.adat.kulcsok())):
fejlécek.függelék (kulcs)
# for ciklus a szótár értékeinek elolvasásához
m esetén tétel felsorolása (én.adatok [kulcs]):
ID = QTableWidgetItem (saját.ID_lista [m])
maga.setItem (m, 0, ID)
newVal = QTableWidgetItem (str (elem))
maga.setItem (m, n + 1, newVal)
# Állítsa be a táblázat fejléc címkéjét
maga.setHorizontalHeaderLabels (fejlécek)
# Állítsa be a fejlécek tippjeit
maga.horizontalHeaderItem (1).setToolTip ("Multimédia")
maga.horizontalHeaderItem (2).setToolTip ("Mesterséges intelligens")
maga.horizontalHeaderItem (3).setToolTip ("Speciális adatbázis")
maga.horizontalHeaderItem (4).setToolTip ("Unix programozás")
# Olvassa el az adott cellaértéket
maga.kattant.összekapcsolni (én.kattintásra)
# Jelenítse meg az ablakot a képernyő közepén
győzelem = én.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().központ()
győzelem.moveCenter (pos)
maga.mozogni (nyerni.bal felső())
maga.előadás()
def on_click (self):
a ItemVal számára önmagában.selectedItems ():
# Olvassa el a fejléc értékét a kiválasztott cella alapján
alany = én.horizontalHeaderItem (ItemVal.oszlop()).szöveg()
# Nyomtassa ki a védjegy részletes adatait
print ("\ n", önálló.ID_list [ItemVal.sor ()], "got", ItemVal.szöveg (), "be", tárgy)
# Hozzon létre alkalmazásobjektumot és hajtsa végre az alkalmazást
app = QApplication (sys.argv)
tábla = TableFromList (jelölések, 5, 5)
asztal.előadás()
kb.exec ()
A fenti ablak a táblával jelenik meg a fenti parancsfájl végrehajtása után.
Következtetés
Ez az oktatóanyag bemutatta, hogyan hozhat létre táblázatokat rögzített adatokkal, szótáradatokkal és adatok felsorolásával két példa segítségével. A táblázatok dinamikus adatokkal is létrehozhatók adatbázis táblák vagy más adatforrások felhasználásával.