PyQt5 oktatóanyag példákkal: Tervezze meg a GUI-t a PyQt segítségével Python
Mi az a PyQt?
PyQt a Qt nyílt forráskódú widget-toolkit python kötése, amely platformok közötti alkalmazásfejlesztési keretrendszerként is funkcionál. A Qt népszerű C++ keretrendszer grafikus felületek írásához minden nagyobb asztali, mobil és beágyazott platformra (támogatja a Linuxot, Windows, Mac operációs rendszer, Android, iOS, Raspberry Pi és még sok más).
A PyQt egy ingyenes szoftver, amelyet a Riverbank Computing, egy angliai székhelyű cég fejlesztett és karbantart, míg a Qt-t a The Qt Company nevű finn cég fejleszti.
A PyQT jellemzői
Íme a PyQt fontos funkciói:
Tanulja meg a PyQt-ot, amely több mint hatszáz osztályból áll, és olyan funkciók széles skáláját fedi le, mint pl
- Grafikus felhasználói felületek
- SQL adatbázisok
- Webes eszközkészletek
- XML feldolgozás
- hálózatépítés
Ezek a funkciók kombinálhatók fejlett felhasználói felületek és önálló alkalmazások létrehozásához. Sok nagy cég minden iparágban használja a Qt-t. Néhány példa az LG, Mercedes, AMD, Panasonic, Harman stb.
PyQt verziók
A PyQt két kiadásban érhető el: PyQt4 és PyQt5. A PyQt4 ragasztókódot biztosít a Qt keretrendszer 4.x és 5.x verzióinak összerendeléséhez, míg a PyQt5 csak az 5.x verziók összerendeléséhez. Ennek eredményeként a PyQt5 visszafelé nem kompatibilis a régebbi verzió elavult moduljaival. Ebben a Qt GUI oktatóanyagban a PyQt5-öt használjuk a példák bemutatására. E két változattól eltekintve
A Riverbank Computing a PyQt3D-t is biztosítja – a python-összerendeléseket a Qt3D keretrendszerhez. A Qt3D egy olyan alkalmazási keretrendszer, amelyet valós idejű szimulációs rendszerek létrehozására használnak 2D/3D rendereléssel.
A PyQt5 telepítése
Ebben a PyQt5 oktatóanyagban a PyQt telepítésének két módját fogjuk látni:
- Kerékfájlok használata
- Építés és telepítés forrásból
A Qt (ejtsd: aranyos) egy összetett rendszer, és a PyQt kódbázis lefordított C++ és a Python kód a motorháztető alatt. Ennek eredményeként bonyolult folyamat a forrásból való felépítése és telepítése a többi python könyvtárhoz képest. A PyQt5-öt azonban könnyedén telepítheti kerekek segítségével.
Szerelés kerekekkel
A kerekek az új szabvány Python csomagolás és forgalmazási formátum. Egyszerűen szólva a kerék egy ZIP-archívum, amelynek speciális neve és .whl fájl kiterjesztését. A kerekek a pip (Pythoncsomagkezelője), amely alapértelmezés szerint benne van a legújabb verziókban Python.
Tehát, ha van Python 3.4 vagy újabb telepítve van, már van pip. Ha azonban egy régebbi verziót használ Python, a továbblépés előtt le kell töltenie és telepítenie kell a pip programot. Az erre vonatkozó utasításokat ezen a linken keresheti: https://pypi.org/project/pip/.
A PyQt5 telepítéséhez
Step 1) Nyissa meg a Parancssor parancsot.
Nyissa meg a Parancssort vagy a PowerShellt Windows gépen.
Step 2) Írja be a következőket.
pip install PyQt5
Step 3) Sikeres telepítés.
A PyQt5 oktatóanyag ezen lépése letölti a PyQt5 whl csomagot (körülbelül 50 MB), és telepíti a rendszerére.
Alternatív megoldásként letöltheti a Windows bináris a python számítógépére telepített verziójához.
Ha elkészült, folytassa a PyQt5 oktatóanyag következő szakaszával az első grafikus felhasználói felület megírásához.
Alapvető PyQt Concepts és Programok
Most, hogy sikeresen telepítette a PyQt5-öt a számítógépére, készen áll az írásra Python GUI tervezési alkalmazások.
Kezdjük egy egyszerű alkalmazással ebben a PyQt5 oktatóanyagban, amely egy üres ablakot jelenít meg a képernyőn.
Indítsa el a pythont IDLE és írja be a következőket:
Program 1
import sys
from PyQt5.QtWidgets import QApplication, QWidget
if __name__ == "__main__":
app = QApplication(sys.argv)
w = QWidget()
w.resize(300,300)
w.setWindowTitle("Guru99")
w.show()
sys.exit(app.exec_())
Mentse el app.py néven (a név nem számít), és nyomja meg az F5 billentyűt a program futtatásához. Alternatív megoldásként kattintson duplán a mentett fájlra az alkalmazás elindításához. Ha mindent jól csinált, egy új ablak nyílik meg Guru99 címmel, az alábbiak szerint.
Nagy! Működik. Nem sok, de az alapok megértéséhez elég. Most ebben a PyQt-oktatóanyagban nézzük meg részletesen, hogy a program egyes sorai mit csinálnak.
from PyQt5.QtWidgets import QApplication, QWidget
Ez az utasítás importálja a grafikus felhasználói felület létrehozásához szükséges összes modult az aktuális névtérbe. A QtWidgets modul tartalmazza az összes főbb widgetet, amelyet ebben használni fog Python Qt bemutató.
app = QApplication(sys.argv)
Itt létrehozza a QApplication osztály objektumát. Ez a lépés a PyQt5 számára szükséges; minden UI-alkalmazásnak létre kell hoznia egy QApplication-példányt, mintegy belépési pontként az alkalmazásba. Ha nem hozza létre, hibák jelennek meg.
A sys.argv azon parancssori paraméterek listája, amelyeket átadhat az alkalmazásnak, amikor elindítja azt a shell-en keresztül, vagy amikor automatizálja a felületet.
Ebben a PyQt5-példában nem adott át argumentumot a QApplications-nek. Ezért az alábbi kóddal is lecserélheti, és még a sys modult sem kell importálnia.
app = QApplication([])
w = QWidget()
Ezután elkészítjük a QWidget osztály objektumát. A QWidget a Qt összes felhasználói felületi objektumának alaposztálya, és gyakorlatilag minden, amit egy alkalmazásban lát, widget. Ide tartoznak a párbeszédpanelek, szövegek, gombok, sávok és így tovább. Az összetett felhasználói felületek tervezését lehetővé tevő funkció az, hogy a widgetek egymásba ágyazhatók, azaz egy widgeten belül lehet egy widget, amely egy újabb widgeten belül van. Ezt működés közben láthatja a következő részben.
w.resize(300,300)
A QWidget osztály átméretezési módszere lehetővé teszi bármely widget méretének beállítását. Ebben az esetben az ablakot 300 x 300 képpontra méretezte át.
Itt nem szabad elfelejteni, hogy a widgetek egymásba ágyazhatók, a legkülső widgetet (azaz a szülő nélküli widgetet) ablaknak nevezik.
w.setWindowTitle("Guru99")
A setWindowTitle() metódus lehetővé teszi egy karakterlánc átadását argumentumként, amely az ablak címét az átadott karakterláncra állítja be. A PyQt5 példában a címsorban a Guru99 jelenik meg.
w.show()
show() egyszerűen megjeleníti a widgetet a monitor képernyőjén.
sys.exit(app.exec_())
Az app.exec_() metódus elindítja a Qt/C++ eseményhurok. Mint tudod, a PyQt nagyrészt be van írva C++ és az eseményhurok mechanizmust használja a párhuzamos végrehajtás megvalósítására. Az app.exec_() átadja a vezérlést a Qt-nek, amely csak akkor lép ki az alkalmazásból, ha a felhasználó bezárja azt a grafikus felhasználói felületről. Ezért a ctrl+c nem lép ki az alkalmazásból, mint más python programokban. Mivel a Qt irányítja az alkalmazást, a python-események csak akkor kerülnek feldolgozásra, ha beállítjuk őket az alkalmazáson belül. Azt is vegye figyelembe, hogy az exec metódus nevében aláhúzás van; ennek az az oka, hogy az exec() már kulcsszó volt a pythonban, és az aláhúzás feloldja a névkonfliktusokat.
Az üres ablakokon túl
Az előző részben láthattad, hogyan készítsünk alapvető widgetet a Qt-ben. Itt az ideje, hogy készítsünk néhány olyan interfészt, amelyekkel a felhasználók valóban interakcióba léphetnek. Még egyszer, gyújtsd fel IDLE és írja be a következőket.
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QMessageBox
def dialog():
mbox = QMessageBox()
mbox.setText("Your allegiance has been noted")
mbox.setDetailedText("You are now a disciple and subject of the all-knowing Guru")
mbox.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)
mbox.exec_()
if __name__ == "__main__":
app = QApplication(sys.argv)
w = QWidget()
w.resize(300,300)
w.setWindowTitle("Guru99")
label = QLabel(w)
label.setText("Behold the Guru, Guru99")
label.move(100,130)
label.show()
btn = QPushButton(w)
btn.setText('Beheld')
btn.move(110,150)
btn.show()
btn.clicked.connect(dialog)
w.show()
sys.exit(app.exec_())
Mentse el a fájlt appone.py vagy bármi más néven, és nyomja meg az F5 billentyűt a program futtatásához. Ha nem követett el semmilyen hibát, a IDLE egy új ablakot nyit meg szöveggel és egy gombbal, az alábbiak szerint.
- Miután az első ablakban rákattint a gombra, egy új üzenetablak nyílik meg az Ön által írt szöveggel.
- Most a Részletek elrejtése/Részletek megjelenítése gombra kattintva kapcsolhatja be a további szövegek láthatóságát.
Mint látható, mivel nem adtunk meg ablakcímet az üzenetmezőben, az alapértelmezett címet maga a python biztosította.
Most, hogy működik, vessünk egy pillantást az előző PyQt5 példához hozzáadott extra kódra.
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QMessageBox
Ez importál néhány további widgetet, amelyeket a PyQt5 példákban használt, nevezetesen a QLabel, QPushButton és QMessageBox.
def dialog():
mbox = QMessageBox()
mbox.setText("Your allegiance has been noted")
mbox.setDetailedText("You are now a disciple and subject of the all-knowing Guru")
mbox.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)
mbox.exec_()
Itt definiált egy párbeszédpanel nevű metódust, amely létrehoz egy üzenetdoboz widgetet, és beállít néhány szöveget a gombokhoz és más mezőkhöz.
A dialógus metódus a program fő blokkjából hívódik meg, amikor egy adott widgetben (jelen esetben a btn PushButton) megnyomunk egy gombot. Az adott gombon kiváltott kattintási esemény hatására ez a funkció végrehajtódik. Az ilyen függvényt Qt-ben slotnak nevezik, és többet megtudhat róla jelek és a nyílások a következő bekezdésekben.
if __name__ == "__main__":
app = QApplication(sys.argv)
w = QWidget()
w.resize(300,300)
w.setWindowTitle("Guru99")
Ez az alkalmazás fő része, és az előző példához hasonlóan először létrehoz egy QApplication példányt, amelyet egy egyszerű widget követ, azaz egy QWidget példányt.
label = QLabel(w)
btn = QPushButton(w)
Két új widgetet adott hozzá ehhez az alkalmazáshoz: QLabel és QPushButton. A QLabel nem szerkeszthető szöveg vagy helyőrzők nyomtatására szolgál egy widgeten belül, míg a QPushButton egy kattintható gomb létrehozására szolgál.
Itt érdemes észrevenni, hogy a címke és a btn objektumok létrehozásakor az ablakobjektumot (w) átadja a QLabel és a QPushButton konstruktorainak. Így működik a beágyazás a PyQt5-ben. Egy másik widgeten belüli widget létrehozásához át kell adnia a szülő widget hivatkozását a gyermek konstruktorának.
label.move(100,130) btn.move(110,150)
A move() segítségével beállíthatja a widget pozícióját a szülő widgethez képest. Az első esetben a címke 100 képponttal balról és 130 képponttal az ablak tetejéről kerül áthelyezésre.
Hasonlóképpen, a gomb 110 képpontra kerül az ablak bal oldalától és 150 képpontra az ablak tetejétől. Ez a példa az elrendezések elérésének durva módja, és általában nem használják a termelésben; csak tanulási céllal szerepel itt. A Qt különböző elrendezéseket támogat, amelyeket a PyQt oktatóanyag következő szakaszaiban részletesen látni fog.
btn.clicked.connect(dialog)
Végül ez egy példa a Qt jeleire és réseire. A grafikus felhasználói felület alapú alkalmazásokban a funkciók a felhasználó által végrehajtott műveletek alapján hajtódnak végre, mint például az egérmutató egy elem fölé helyezése vagy egy gombra kattintás. Ezeket a műveleteket ún események. Emlékezzünk vissza, hogy az app.exec_() metódus átadja a vezérlést a Qt-nek Esemény-hurok. Erre való az eseményhurok: események figyelésére és válaszként műveletek végrehajtására.
Amikor egy esemény történik, például amikor a felhasználó rákattint egy gombra, a megfelelő Qt widget felveti a jel. Ezek a jelek csatlakoztathatók python függvények (mint a párbeszéd funkció ebben a példában), így a funkció akkor kerül végrehajtásra, amikor egy jel aktiválódik. Ezeket a függvényeket ún nyílások Qt nyelven.
Ezt követően az esemény jelére válaszul a slot funkció aktiválásának alapvető szintaxisa a következő:
widget.signal.connect(slot)
Ami azt jelenti, hogy amikor a jel kiváltja a modul, a csatlakoztatott rés funkció végrehajtásra kerül. Összefoglalva, a Qt jeleket és réseket használ az objektumok közötti kommunikációra, valamint az összetevők újrafelhasználhatóságának és interaktivitásának elősegítésére.
Most, hogy tudja, hogyan kell beágyazni a modulokat, és hogyan valósíthat meg interakciókat jelek és helyek segítségével, itt található a PyQt-alkalmazásokban használható hasznos widgetek és egyéb osztályok listája.
Összetevők és widgetek
A PyQt-ban számos widget áll rendelkezésre grafikus felhasználói felületek létrehozásához. A PyQt5 esetében azonban az osztályok különböző modulokba való átrendezése és a licencek átdolgozása történt.
Ezért alapvető fontosságú, hogy magas szintű képet kapjunk a PyQt5 szerkezetéről. Ebben a szakaszban megtudhatja, hogyan szerveződik a PyQt5 belsőleg, és megismerheti a PyQt5 által biztosított különböző modulokat, könyvtárakat és API-osztályokat.
PyQt5 címtárstruktúra
Ezeket az alapvető modulokat használja Python's Qt kötés, konkrétan PyQt5.
- Qt: Az alábbiakban említett összes osztályt/modult egyetlen modulba egyesíti. Jelentősen megnöveli az alkalmazás által használt memóriát. A keretrendszer kezelése azonban egyszerűbb, ha csak egy modult importál.
- QtCore: A többi modul által használt alapvető nem grafikus osztályokat tartalmazza. Itt valósul meg a Qt eseményhurok, a jelek és a slot-kapcsolat stb.
- QtWidgets: A Pyqt5-ben elérhető widgetek többségét tartalmazza.
- QtGui: GUI összetevőket tartalmaz, és kiterjeszti a QtCore modult.
- QtNetwork: A Qt-n keresztüli hálózati programozás megvalósításához használt osztályokat tartalmazza. Támogatja a TCP szervereket, TCP socketeket, UDP socketeket, SSL-kezelést, hálózati munkameneteket és DNS-kereséseket.
- QtMultimédia alacsony szintű multimédiás funkciókat biztosít.
- QtSql: SQL adatbázisok adatbázis-integrációját valósítja meg. Támogatja az ODBC-t, MySQL, Oracle, SQLiteés PostgreSQL.
PyQt5 widgetek
Itt található a PyQt5 leggyakrabban használt widgetek listája
- QLineEdit: Ez egy beviteli mező, amely lehetővé teszi egy sor szöveg bevitelét a felhasználó számára.
line = QLineEdit()
- QRadioButton: Ez egy beviteli mező kiválasztható gombbal, hasonlóan a html rádiógombjaihoz.
rad = QRadioButton("button title") rad.setChecked(True) #to select the button by default.
- QComboBox: A kiválasztható elemek listáját tartalmazó legördülő menü megjelenítésére szolgál.
drop = QComboBox(w) drop.addItems(["item one", "item two", "item three"])
- QCheckBox: Kijelölhető négyzet alakú négyzetet jelenít meg a címke előtt, amely ki van jelölve, a rádiógombokhoz hasonlóan.
check = QCheckBox("button title")
- QMenuBar: egy vízszintes menüsort jelenít meg az ablak tetején. Ehhez a sávhoz csak a QMenu osztály objektumai vehetők fel. Ezek a QMenu objektumok tartalmazhatnak továbbá karakterláncokat, QAction objektumokat vagy más QMenu objektumokat.
- QToolBar: Ez egy vízszintes sáv vagy ablaktábla, amely mozgatható az ablakon belül. Tartalmazhat gombokat és egyéb widgeteket.
- QTab: egy ablak tartalmának több oldalra bontására szolgál, amelyek a widget tetején található különböző füleken keresztül érhetők el. Két részből áll: a lapsávból és a lapoldalból.
- QScrollBar: Görgetősávok létrehozására szolgál, amelyek lehetővé teszik a felhasználó számára, hogy felfelé és lefelé görgessen egy ablakon belül. Ez egy mozgatható csúszkából, egy csúszkasávból és két gombból áll a csúszka felfelé vagy lefelé görgetéséhez.
scroll = QScrollBar()
- QSplitter: Az elosztók az ablakok tartalmának szétválasztására szolgálnak, így a widgetek megfelelően vannak csoportosítva, és ne tűnjenek zsúfoltnak. A QSplitter a PyQt5-ben elérhető egyik elsődleges elrendezéskezelő, és a tartalom vízszintes és függőleges felosztására szolgál.
- QDock: A dokkoló widget egy alablak két tulajdonsággal:
- A főablakon belül mozgatható és
- A szülőablakon kívül dokkolható egy másik helyre a képernyőn.
Elrendezések és témák
A korábbi PyQt5 példákban csak a move() és resize() metódusokat használta a widgetek pozíciójának beállítására a grafikus felhasználói felületen.
A PyQt azonban robusztus elrendezéskezelő motorral rendelkezik, amellyel fejlett felhasználói felületek hozhatók létre az alkalmazásokhoz. Ebben a részben két fontos osztályt ismerhet meg, amelyeket a Qt az elrendezések létrehozására és kezelésére használ.
- QBoxelrendezés
- QGridLayout
QBoxelrendezés
QBoxAz elrendezés az elrendezés gyermekmoduljainak vízszintes vagy függőleges sorba igazítására szolgál. A két érdeklődési osztály, amely a Q-tól öröklődikBoxAz elrendezés a következő:
- QHBoxElrendezés: a gyermek widgetek vízszintes sorba rendezésére szolgál.
- QVBoxElrendezés: a gyermek widgetek függőleges vonalvezetésére szolgál.
Például így van három gomb a QH-hoz igazítvaBoxAz elrendezés kinéz.
import sys
from PyQt5.QtWidgets import *
if __name__ == "__main__":
app = QApplication([])
w = QWidget()
w.setWindowTitle("Musketeers")
btn1 = QPushButton("Athos")
btn2 = QPushButton("Porthos")
btn3 = QPushButton("Aramis")
hbox = QHBoxLayout(w)
hbox.addWidget(btn1)
hbox.addWidget(btn2)
hbox.addWidget(btn3)
w.show()
sys.exit(app.exec_())
És így fognak kinézni a QV-benBoxElrendezés.
import sys
from PyQt5.QtWidgets import *
if __name__ == "__main__":
app = QApplication([])
w = QWidget()
w.setWindowTitle("Musketeers")
btn1 = QPushButton("Athos")
btn2 = QPushButton("Porthos")
btn3 = QPushButton("Aramis")
vb = QVBoxLayout(w)
vb.addWidget(btn1)
vb.addWidget(btn2)
vb.addWidget(btn3)
w.show()
sys.exit(app.exec_())
Az egyetlen függvény, amely ezen a ponton magyarázatra szorul, az addWidget() metódus. Widgetek beszúrására szolgál a HBox vagy VBox elrendezés. Más elrendezésekben is használják, ahol eltérő számú paramétert vesz igénybe, amint azt a következő részben látni fogja. A widgetek abban a sorrendben jelennek meg az elrendezésen belül, ahogyan beszúrta őket.
QGridLayout
A QGridLayout olyan interfészek létrehozására szolgál, amelyekben a widgetek rács (például mátrix vagy 2D tömb) formájában vannak elhelyezve. Ha elemeket szeretne beszúrni egy rácselrendezésbe, a mátrixábrázolás segítségével meghatározhatja a rácsban lévő sorok és oszlopok számát, valamint ezen elemek helyzetét.
Például egy 3*3-as rács (vagyis egy három soros és három oszlopos rács) létrehozásához a következő kódot kell beírnia:
Import sys
from PyQt5.QtWidgets import *
if __name__ == "__main__":
app = QApplication([])
w = QWidget()
grid = QGridLayout(w)
for i in range(3):
for j in range(3):
grid.addWidget(QPushButton("Button"),i,j)
w.show()
sys.exit(app.exec_())
Ez lesz a kimenet:
Az addWidget() metódus a rácselrendezésben a következő argumentumokat veszi fel:
- A widget objektum, amelyet hozzá szeretne adni a rácshoz
- Az objektum x-koordinátája
- Az objektum y-koordinátája
- A sortávolság (alapértelmezett =0)
- A col-span (alapértelmezett = 0)
A jobb megértéshez manuálisan beillesztheti az egyes widgeteket az alábbiak szerint
import sys
from PyQt5.QtWidgets import *
if __name__ == "__main__":
app = QApplication([])
w = QWidget()
grid = QGridLayout(w)
grid.addWidget(QPushButton("Button one"),0,0)
grid.addWidget(QPushButton("Button two"),0,1)
grid.addWidget(QPushButton("Button three"),1,0)
grid.addWidget(QPushButton("Button four"),1,1)
w.show()
sys.exit(app.exec_())
Így fog kinézni a rács:
A rowspan és colspan paramétereket is átadhatja az addWidget()-nek, hogy egynél több sort vagy oszlopot fedhessen le.
Például,
grid.addWidget(QPushButton("Button five"),2,0,1,0)
Ezzel létrehoz egy gombot, amely mindkét oszlopon átnyúlik.
témák
A PyQt5 néhány beépített témát tartalmaz, amelyeket az alkalmazásaiban használhat. A setStyle() A QApplication példányon meghívott metódus egy adott téma beállítására szolgál az alkalmazáshoz.
Például a következő kódsor hozzáadásával az alkalmazás témája alapértelmezettről Fusionra változik
app.setStyle("Fusion")
Így fog kinézni az előző példa a Fusion Theme-ben
Egy másik hasznos funkció az alkalmazások témájához a setPalette() metódus. Itt található a kód a különböző widgetek színének megváltoztatásához a setPalette() segítségével.
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QPalette
if __name__ == "__main__":
app = QApplication([])
app.setStyle("Fusion")
qp = QPalette()
qp.setColor(QPalette.ButtonText, Qt.black)
qp.setColor(QPalette.Window, Qt.black)
qp.setColor(QPalette.Button, Qt.gray)
app.setPalette(qp)
w = QWidget()
grid = QGridLayout(w)
grid.addWidget(QPushButton("Button one"),0,0)
grid.addWidget(QPushButton("Button two"),0,1)
grid.addWidget(QPushButton("Button three"),1,0)
grid.addWidget(QPushButton("Button four"),1,1)
w.show()
sys.exit(app.exec_())
Íme az eredmény.
A setPalette() metódus használatához először meg kell határoznia egy palettát. Ez a QPalette osztály objektumának létrehozásával történik.
qp = QPalette()
Figyeljük meg, hogy a QPalette osztály a QtGui modulhoz tartozik, és importálnia kell, hogy ez működjön. Miután létrehozta a QPalette objektumot, a setColor() metódussal adja át annak a widgetnek a nevét, amelynek a színét meg szeretné változtatni, valamint a beállítani kívánt színt.
qp.setColor(QPalette.Window, Qt.black)
Ezzel az ablak színe feketére változik. Miután meghatározta a színsémát, használja a setPalette() függvényt a paletta alkalmazásához.
app.setPalette(qp)
Csak ennyit kell tennie, ha néhány alapvető témát szeretne létrehozni az alkalmazásához. A PyQt azt is lehetővé teszi, hogy stíluslapokat használjon a widgetek megjelenésének meghatározásához. Ha ismeri a CSS-t, a Qt stíluslapok segítségével könnyedén meghatározhat speciális stílusokat az alkalmazáshoz.
Összegzésként
- A PyQt a python-kötés a C++ UI keretrendszer, Qt.
- A PyQt4 és PyQt5 a Riverbank Computing által kifejlesztett két fő verzió.
- A PyQt keretrendszer fő moduljai a következők:
- Qt
- QtCore
- QtWidgets
- QtGui
- QtSql
- QtNetwork
- A PyQt különféle widgeteket támogat, például:
- gombok
- Szöveges címkék
- Szövegmezők
- Rádiógombok és jelölőnégyzetek
- Eszköztárak és menüsorok
- webkészlet
- Lapok
- dokkok
- A PyQt-ban az interaktivitás a segítségével valósul meg jelek és a helyekkel.
- An esemény egy felhasználó által a grafikus felhasználói felületen végrehajtott művelet (például egy gombra kattintás).
- A jel a megfelelő widget emeli ki, amikor esemény történik rajta.
- A rés egy olyan funkció, amely a jelhez kapcsolódik, és akkor fut le, amikor a jel felemelkedik.
- A PyQt robusztus elrendezési motorral rendelkezik, és támogatja a fejlett elrendezéstervezést és -kezelést. Ez a két gyakran használt elrendezési séma a PyQt-ban:
- Box elrendezés
- Grid Layout
- A PyQt tervező lehetővé teszi egyéni témák létrehozását a grafikus felhasználói felületekhez, és beépített támogatást nyújt a stíluslapokhoz.
- qtcreator Python felhasználói felületek és önálló alkalmazások létrehozására is használható.












