Ehhez a bemutatóhoz a Qt Creator telepítése szükséges – ingyenesen letölthető a Qt weboldaláról. Menj a https://www.qt.io/download oldalra, és töltsd le a Qt csomagot. A telepítés során választhatjuk, hogy csak a Creatort telepítjük-e.

Nyissuk meg a Qt Creatort, és megjelenik a főablak. A tervező a bal oldali fülön keresztül érhető el. Ennek aktiválásához azonban először el kell kezdenie egy .ui fájl létrehozását.

A Qt Creator felülete, bal oldalon a Design rész látható.

A .ui fájl létrehozásához menjen a File -> New File or Project… A megjelenő ablakban válasszuk ki a bal oldalon a Fájlok és osztályok menüpont alatt a Qt-t, majd a jobb oldalon a Qt Designer Form menüpontot. Észre fogja venni, hogy az ikonon “ui” van, ami mutatja, hogy milyen típusú fájlt hoz létre.

Új Qt .ui fájlt hoz létre.

A következő lépésben megkérdezik, hogy milyen típusú widgetet szeretne létrehozni. Ha egy alkalmazást indítunk, akkor a Main Window a megfelelő választás. Azonban létrehozhat .ui fájlokat párbeszédpanelekhez, űrlapokhoz és egyéni összetett widgetekhez is.

Válassza ki a létrehozandó widget típusát, a legtöbb alkalmazás esetében ez a Main Window lesz.

Ezután válasszon egy fájlnevet és mentési mappát a fájlnak. Mentsük a .ui fájlt ugyanazon a néven, mint a létrehozandó osztályt, csak azért, hogy a későbbi parancsok egyszerűbbek legyenek.

Válasszuk ki a fájl mentési nevét és mappáját.

Végül választhatjuk, hogy a fájlt hozzáadjuk-e a verziókezelő rendszerünkhöz, ha használunk ilyet. Ezt a lépést nyugodtan kihagyhatod – nem befolyásolja a felhasználói felületedet.

Előre választhatod, hogy a fájlt hozzáadod a verziókezelő rendszeredhez, például a Githez.

Főablakod kialakítása

A felhasználói felület tervezőjében megjelenik az újonnan létrehozott főablakod. Kezdetben nem sok mindent láthatunk, csak egy szürke munkaterületet, amely az ablakot ábrázolja, az ablak menüsorának kezdeteivel együtt.

A létrehozott főablak kezdeti nézete.

Az ablak méretét az ablakra kattintva és az egyes sarkokon lévő kék fogantyúk húzásával módosíthatjuk.

A létrehozott főablak kezdeti nézete.

Az alkalmazás létrehozásának első lépése, hogy néhány widgetet adunk az ablakhoz. Az első alkalmazásainkban megtanultuk, hogy a QMainWindow központi widget beállításához a .setCentralWidget()-t kell használnunk. Azt is láttuk, hogy ahhoz, hogy több widgetet adjunk hozzá egy elrendezéssel, szükségünk van egy köztes QWidget-ra, amelyre az elrendezést alkalmazzuk, ahelyett, hogy az elrendezést közvetlenül az ablakhoz adnánk hozzá.

AQt Creator automatikusan gondoskodik erről helyettünk, bár ez nem különösebben nyilvánvaló.

Hogy több widgetet adjunk hozzá a főablakhoz egy elrendezéssel, először húzzuk a widgeteket a QMainWindow-re. Itt most 3 címkét húzunk. Nem számít, hova húzzuk őket.

Főablak 1 címkével és 1 gomb hozzáadásával.

2 widgetet hoztunk létre az ablakra való ráhúzással, az ablak gyermekeivé tettük őket. Most alkalmazhatunk egy elrendezést.

Keresd meg a QMainWindow-t a jobb oldali panelen (pont a tetején kell lennie). Alatta az ablak központi widgetjét jelentő centralwidget látható. A központi widget ikonja mutatja az aktuálisan alkalmazott elrendezést. Kezdetben egy piros kör-kereszt van rajta, ami azt mutatja, hogy nincs aktív elrendezés.

Jobb klikk a QMainWindow objektumra, és a megjelenő legördülő listában keresse meg az ‘Elrendezés’-t.

Jobb klikk a főablakra, és válassza az elrendezést.

A következőkben megjelenik az elrendezések listája, amelyeket az ablakra alkalmazhat. Válassza a Vízszintesen elrendezni lehetőséget, és az elrendezés a widgetre kerül alkalmazásra.

A főablakra alkalmazandó elrendezés kiválasztása.

A kiválasztott elrendezés a QMainWindow központiwidgetjére kerül alkalmazásra, és a widgetek hozzáadódnak az elrendezéshez, a kiválasztott elrendezéstől függően elrendezve. Megjegyezzük, hogy a Qt Creatorban ténylegesen áthúzhatjuk és átrendezhetjük a widgeteket az elrendezésen belül, vagy tetszés szerint más elrendezést választhatunk. Ez különösen jól használható prototípusok készítéséhez és kipróbálásához.

Függőleges elrendezés a főablak widgetjeire alkalmazva.

A generált .ui fájl használata

Egy nagyon egyszerű felhasználói felületet hoztunk létre. A következő lépés az, hogy ezt bevisszük a Pythonba, és egy működő alkalmazást építünk belőle.

Először mentsük el a .ui fájlt – alapértelmezés szerint a létrehozásakor kiválasztott helyre fogja menteni, bár tetszés szerint más helyet is választhatunk.

A .ui fájl XML formátumú. Ahhoz, hogy a felhasználói felületünket Pythonból használjuk, két alternatív módszer áll rendelkezésünkre –

  1. betölthetjük egy osztályba a .loadUI() módszerrel
  2. konvertálhatjuk Pythonba a pyuic5 eszközzel.

Ezzel a két megközelítéssel foglalkozunk az alábbiakban. Személy szerint én jobban szeretem az UI-t Python fájlba konvertálni, hogy a dolgok hasonlóak maradjanak a programozás &csomagolás szempontjából.

A .ui fájl közvetlen betöltése

A .ui fájlok betöltéséhez használhatjuk a PyQt5-hez mellékelt uic modult, konkrétan a uic.loadUI()módszert. Ez fogadja egy UI fájl fájlnevét és betölti azt, létrehozva egy teljesen működőképes PyQt5 objektumot.

A PySide2 esetében használhatunk egy QUiLoader példányt és meghívhatjuk a loader.load() metódust, hogy ugyanezt elérjük.

A Qt Creatorban tervezett (nagyon) egyszerű UI

Mivel a uid.loadUI() metódus egy példány objektumot alakít át, nem csatolhatunk hozzá egyéni __init__() kódot. Ezt azonban kezelheted egy saját beállítási függvényen keresztül

Az UI betöltéséhez egy meglévő widget __init__ blokkjából (pl. egy QMainWindow) használhatod a uic.loadUI(filename, self) a PyQt5 esetében.

A PySide2 betöltője nem támogatja ezt a megközelítést – a második paraméter a létrehozott widget szülő widgetjére vonatkozik. Ez megakadályozza, hogy egyéni kódot adj hozzá a widget inicializálásához, de ezt egy külön init függvénnyel megkerülheted.

A .ui fájl Pythonra konvertálása

A Python kimeneti fájl létrehozásához futtasd a pyuic5 parancssorból, átadva a .ui fájlt és a kimenet célfájlját, egy -o paraméterrel. A következő egy MainWindow.py nevű Python fájlt generál, amely tartalmazza a létrehozott felhasználói felületünket.

bash

pyuic5 mainwindow.ui -o MainWindow.py

Ha PyQt4-et használunk, az eszköz neve `pyuic4`, de egyébként teljesen azonos.

A kapott MainWindow.py fájlt megnyithatjuk egy szerkesztőprogramban, hogy megnézzük, bár ezt a fájlt nem szabad szerkeszteni. A Qt Creator használatának ereje abban rejlik, hogy fejlesztés közben szerkesztheted, finomíthatod és frissítheted az alkalmazásodat. Az ebben a fájlban végzett bármilyen változtatás elveszik, amikor frissíti azt. Azonban felülbírálhat és módosíthat bármit, amit csak akar, amikor importálja és használja a fájlt az alkalmazásában.

A kapott Python fájl importálása ugyanúgy működik, mint bármely másé. Az osztályát a következőképpen importálhatja. A pyuic5 eszköz Ui_-t csatol a Qt Creatorban definiált objektum nevéhez, és ezt az objektumot akarod importálni.

python

from MainWindow import Ui_MainWindow

Az alkalmazásod főablakának létrehozásához hozz létre egy osztályt a szokásos módon, de mind a QMainWindow, mind az importált Ui_MainWindow osztályodból alosztályozva. Végül hívd meg a self.setupUi(self)-t a __init__-ből, hogy elindítsd a felület beállítását.

Ez pontosan ugyanazt az eredményt adja, mint korábban.

A Qt Creatorban tervezett (nagyon) egyszerű felhasználói felület

Ez minden. Az ablakod most már teljesen be van állítva. Mivel a .ui fájl használata absztrahálja az UI-specifikus kódot, ugyanezt a mintát használhatja bármilyen általunk tervezett felület betöltéséhez.

Az alkalmazás logikájának hozzáadása

A Qt Creator segítségével létrehozott widgetekkel ugyanúgy interakcióba léphet, mint a kóddal létrehozottakkal. A dolgok egyszerűsítése érdekében uic az összes gyermek widgetet hozzáadja az ablakobjektumhoz a Qt Creatorban megadott id nevük alapján. A következő részben foglalkozunk azzal, hogyan lehet ezekkel dolgozni.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.