Piton

A PyQt QTableWidget használata

A PyQt QTableWidget használata
A táblázat az adatok strukturált formátumban történő megjelenítésére szolgál, sorok és oszlopok szerint. A QTableWidget A PyQt osztálya a Pythonban használható az adatok táblázatos formában történő megjelenítésére a kutatással vagy adatelemzéssel kapcsolatos feladatokhoz. A táblázat tartalma különböző típusú tárolókból állítható elő, például kétdimenziós listákból vagy táblázatokból, adatbázis-táblákból, JSON-fájlokból stb.  Egy vagy több táblázat létrehozható a QTableWidget a PyQt alkalmazásban. Ez az oktatóanyag bemutatja, hogyan kell használni QTableWidget különféle típusú táblák létrehozásához Python szkript segítségével.

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árakat
import 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 modulokat
import 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.

Az egér középső gombja nem működik a Windows 10 rendszerben
A középső egérgomb segít átgörgetni a hosszú weboldalakat és a sok adatot tartalmazó képernyőket. Ha ez leáll, akkor a billentyűzet segítségével görge...
Hogyan lehet megváltoztatni a bal és jobb egérgombokat a Windows 10 PC-n
Elég általános, hogy az összes számítógépes egéreszközt ergonómikusan a jobbkezes felhasználók számára tervezték. De vannak olyan egéreszközök, amelye...
Az egérkattintások emulálása az egérrel a Clickless Mouse használatával a Windows 10 rendszerben
Ha az egeret vagy a billentyűzetet nem megfelelő testtartásban, túlzott használat mellett használhatja, számos egészségügyi problémát okozhat, beleért...