az én Gyönyörű GUI Ez a lebegő”logó”szöveg egy helyőrző egy képhez, amelyet betöltünk. Ezt később elmagyarázzuk!
Qt Designer Python
mentse el az UI fájlt a projekt mappájába, mint ” mainDialog.ui”, szeretek létrehozni egy “ui” nevű almappát, majd elmenteni oda, hogy a projekt mappáját megszervezhessük.
miután elmentettük, át kell alakítanunk valamire, amit a Python valóban megért. A parancssor segítségével keresse meg az ui almappáját. Ha ezt virtuális környezetben is elvégzi, győződjön meg arról, hogy a PyQt5 telepítést tartalmazó virtuális környezetben is tartózkodik.
írja be ezt a kódot az ui fájlt tartalmazó mappába való navigáláshoz, majd konvertálja a.ui fájl .py fájlba:
cd "your/ui/folder/here" pyuic5 mainDialog.ui -o mainDialog.py
a projektmappa gyökerében hozzon létre egy Python fájlt “main.py”. adja meg ezt a kódot:
futtassa a main.py fájl a Python tolmács segítségével. Gratula! Most a Python futtathatja a kódot, és megjelenik a GUI. Elmagyarázom a kód eddig fontos részeit:
5. sor: importáljuk a mainDialog.py fájl a felhasználói felület almappájából. A “mainDialog” álnevet használom, hogy megkönnyítsem az elnevezést.
10. sor: Ez az osztály tartalmazza a mainDialog ablakhoz kapcsolódó összes funkciót, amelyet éppen készített. Az első argumentum felhívja a QDialog objektumot, amely az általunk használt GUI típusa. A második argumentum az általunk deklarált aliason alapul, és az Ui_dialog osztály a Python fájlban, amelyet a .ui fájlkonverzió
12. sor: a__ init _ _ funkció azért fontos, mert ez az a kód, amelyet a program indításakor futtatni szeretne. Tehát ez az, ahol az én.a setupui (self) azért jön be, mert azt szeretné, hogy a felhasználói felület futjon a program megnyitásakor. Olyan dolgokat fogunk elhelyezni, mint a konfigurációs fájlok betöltése és a gombfunkciók itt, mert azt akarjuk, hogy működjenek, amint futtatjuk a szoftvert.
20. sor: Ez az a kód, amely végrehajtja és megnyitja a GUI-t.
funkciók hozzáadása a gombokhoz és objektumokhoz
most megvan a Gyönyörű GUI. Hogyan csináljuk a Forex-et? Adjuk hozzá a funkciót a legfrissebb Forex árak betöltéséhez, amelyeket a bejegyzés elején mutattam be. Ezután tegyük be a kódot, hogy összekapcsoljuk az objektumokat a Python kóddal.
amikor megpróbál csatlakozni a Designer alkalmazásban létrehozott objektumokhoz, a “self.”. Tehát, ha az objektum PyQt Designer hívták labelTitle, akkor hívja az objektumot gépeléssel önálló.címke. Ha az objektumot lineEditInputDirectory-nak hívták, akkor Ön beírásával hívja fel.lineEditInputDirectory és így tovább.
nézze meg a Github lényegét és az alábbi magyarázatot:
16.sor: ezt a funkciót akkor hívják meg, amikor a felhasználó rákattint a gombra a Forex árak betöltéséhez. A tárgy maga az én.pushButtonLoadRates de csatoljuk funkcionalitás, amikor a felhasználó rákattint hozzá.kattintott.csatlakozás (). Ez a funkció bizonyos árnyalatokkal rendelkezik. Az érv .a connect() csak zárójel nélkül fogadja el a függvényt, tehát ebben az esetben én.load_rates. Ha argumentumokat kell hozzáadnia a Python függvény követelményei miatt, akkor lambda-t kell használnia, olvassa el az alábbi kódblokkot:
self.pushButton.clicked.connect(lambda:self.load_rates(arg1,arg2,...))
19 .sor:.currentText() megkapja a comboBox objektum aktuális karakterláncát, amely a referencia pénznemünk lesz. Tehát, ha a felhasználó kiválasztja USD vissza fog térni Forex árak képest 1 USD. Ez a karakterlánc hozzáadódik az URL-hez, amelyet az API-hoz való csatlakozáshoz használnak a következő sorban.
vonalak 24-26: ezek az adatok lineEdit objektumokra való betöltésére szolgálnak. Használjuk .setText (), hogy módosítsa a szöveget a lineEdit objektumokat. Csak karakterláncokat fogad el, ezért az API számait karakterláncokká kell konvertálni.
legújabb Forex árak az 1 Fülöp-szigeteki Peso-hoz képest konfigurációs fájl hozzáadása
Ez a rész egy kicsit trükkös, és ez az, ahol a meglévő Python tudás hasznos lesz. Ebben a részben a következő jellemzőket tárgyaljuk:
új ablak megnyitása a programon belül
konfigurációs fájl létrehozása és használata
most, hogy van egy munkaprogramunk, tegyük fel, hogy egy példa kedvéért a részleg különböző embereinek különböző igényei vannak, és mindannyian különböző valutákkal dolgoznak. Megkönnyíthetjük az életüket egy konfigurációs fájl hozzáadásával, hogy ne kelljen minden alkalommal használni a legördülő mezőt. Konfigurációs fájl segítségével elmenthetjük egyedi beállításaikat, majd betölthetjük, amikor a program elindul.
itt jön be a “Config” gomb. Hozzunk létre egy új ablakot a felhasználó számára a beállítások módosításához. Ez lehetővé teszi számunkra, hogy a főablakot tisztán és szervezetten tartsuk.
Mentés a ui mappába, mint configDialog.ui és ahogy korábban tettük ebben az oktatóanyagban, konvertálja ugyanazt a pyuic5 parancsot, mint az alábbi kódblokkban látható:
cd "your/ui/folder/here" pyuic5 configDialog.ui -o configDialog.py
most itt van, amit a frissített kódnak alább kell kinéznie. Az új kód kiegészítések magyarázata a Github lényege alatt található:
6.sor: a config párbeszédablakot ezen az importálási utasításon keresztül adjuk hozzá
10-11. sor: új importálási utasítások, amelyek relevánsak a szép konfigurációs fájl munkafolyamathoz. a savanyúság és az operációs rendszer egyaránt Az alapértelmezett Python környezettel rendelkezik, és nincs szükség további telepítésekre.
13-14. sor: A konfigurációs fájl helyét az egész szkriptben használják az összes osztályban, így globálisnak nyilvánítjuk, és teljes sapkává tesszük, mivel állandó.
17. sor: Ez az osztály tartalmazza a konfigurációs ablak összes lényeges információját. Ha objektumokat szeretne hívni az Ön által készített konfigurációs felhasználói felület fájlban, akkor ajánlott, hogy a hívás ebben az osztályban történjen, nem pedig a MainDialog osztályban.
23. sor: betöltjük a meglévő konfigurációs fájlt. Ezt azért tesszük, hogy megmutassuk, mi az aktuális beállítás a felhasználó számára.
26. sor: A betöltött konfigurációs fájl segítségével a kombinált doboz szövegét az aktuális beállításra állítjuk.
33. sor: amikor elmentjük a konfigurációt, frissíteni akarjuk az önmagában tárolt szótárt.config írása előtt a config fájlt.
39. sor: ez bezárja a konfigurációs paraméter ablakot.
48-54 sor: ez a logika a konfigurációs fájl betöltésekor a fő párbeszédablakban. Bármilyen okból is hiányozhat a konfigurációs fájl, majd a Program hibák miatt nem indul el. Ha a konfigurációs fájl hiányzik, hozzon létre egy konfigurációs fájlt az alapértelmezett paraméterekkel, hogy a felhasználó továbbra is elindítsa a programot, majd később módosítsa a paramétereket.
56. sor: betöltjük az egyéni beállításokat, és beállítjuk a kombinált mezőt a felhasználó által preferált pénznemre.
62-63 sor: ez elindítja a konfigurációs paraméter ablakot. Ennek alapja a config dialog osztály neve. Ebben az esetben az osztály neve ConfigParameters.
65-68 sor: miután a felhasználó befejezte a beállítások konfigurálását, az ablak bezárult. A program frissíti magát, és töltse be a konfigurációs fájlt újra frissítése előtt a referencia valuta combo box.
Ez a munkafolyamat lehetővé teszi a felhasználó számára az egyedi beállítások mentését, és a program továbbra is működni fog, ha a konfigurációs fájl hiányzik. Meg akarja próbálni, és figyelembe minden probléma a program találkozik.
Képek hozzáadása
most már teljesen működőképes programja van, adjuk hozzá az utolsó simításokat: egy logót. Bár lehet egy PyQt erőforrásfájl, ahol képeket tárolhat, inkább csak címkékkel és pixmapokkal töltöm be a képeket. Ez nagyon gyors.
56-58.sor: betöltjük az ui mappába mentett logót. Ezután beállítom a labelLogo objektumot a pixmap betöltésére, a tartalmat pedig a labelLogo objektum méretére méretezem.
Our final product
Final project folder structure
Final Thoughts
Hopefully this tutorial gives some clarity on how PyQt5 Designer works. Számtalan órát töltöttem googling ezeket a dolgokat, sőt fizetett oktatóanyagok Udemy volt egy kicsit haszontalan.