Finomságok használatának python nyelven 10. rész
Ebben a cikkben fogjuk nézni egy másik könyvtár létrehozása GUI-alkalmazások Python - wxPython, és kapcsolja be a két kapcsolódó kérdések: együttműködés a 2D grafikus segítségével Pygame könyvtárak és automatizálják GUI-t használó alkalmazást PyZenity forgatókönyveket.
wxPython projekt származik a jól ismert projekt wxWidgets. Az alapot wxWidgets grafikus-könyvtár végrehajtott C ++ nyelven, és tartalmaz egy sor tervezetet C ++ osztályok funkciógazdag (magas szintű adatszerkezetek, stb.) A wxPython viszont kínál „wrapper” a wxWidgets osztályok kapcsolódó GUI.
Megjegyzés. Grafikus wxWidgets rendszer nyilatkozik csak többszintű felső platform API-t, használjuk a közvetlen megjelenítését alacsony szintű (natív) API egy adott platformon. A fő feladat a könyvtár - a teljesítményen írt alkalmazások melynek segítségével különböző operációs rendszerek esetén. Ezért párhuzamosan, több különböző megvalósításai wxWidgets: wxGTK, wxMSW, wxMac stb WxWidgets - ez egy magasabb absztrakciós szinten, mint a grafika alapjait, amelyre épül.
wxWidgets könyvtár nem annyira népszerű a Linux, mint a GTK + vagy Ot, mert mindent meg kell használni wxPython kell külön telepíteni:
Elég, ha install python-wxgtk2 csomagot. és az összes többi csomag telepíti a saját:
1. kódrészlet egy egyszerű alkalmazás, amely wxPython (bare.py python_gui.tgz fájlt az archív a „Letöltések”):
1. listán wxPython-alkalmazások
Ez a példa létrehoz egy üres GUI-alkalmazás ablakot, amely ellenőrzése alatt Linux ablakkezelő lehet mozgatni, átméretezni, minimális és maximális méretűre teljes képernyőre:
2. lista még egy wxPython-használó alkalmazás API wxPython lehetőségeket Python osztályok terminológiát. Ez az alkalmazás lehetővé teszi, hogy Python-kód átirányítani patakok és SYSOUT SYSERR létrehozott egy ablak (például wxPython megtalálható a megfelelő tankönyvek a „források” című részben):
2. lista Redirecting kimeneti stream (file sysout.py)
Alkalmazás futtatásához, és látni, hogy milyen üzeneteket küldeni a nyomtatási ablak az alkalmazás, és mi -, hogy indítson egy terminál:
A 2. ábra egy példa az alkalmazás:
Vannak olyan vélemények, hogy wxPython végrehajtása válhat egy szabványos GUI-könyvtár Python, ha ez a helyzet nem volt már foglalt Tkinter. Mindazonáltal wxPython által használt számos nyílt forráskódú projekt.
Ezzel szemben a korábbi könyvtárak, Pygame - egy eszköz a végrehajtás különböző játék stratégiák a grafikus ablakot. Ezért amellett, hogy eszközöket, hogy megjelenjen a GUI, ez is tartalmaz néhány, a szerszámok rajz Ezekben az ablakokban, animációkat készíthetnek, és korlátozott képes lejátszani audiót.
Ez a csomag nem vonatkozik a Python Standard Library modulok, ezért kell külön telepíteni.
Megjegyzés. A fentiek miatt a funkcionalitás bővítmények telepítése a csomag eredményeként a jövőben telepítését nagyszámú függő csomag: PulseAudio-esound-compat. oss-compat. libsmpeg stb De ez az alapértelmezett viselkedés minden GUI-eszközöket, mert az általuk használt sok kiegészítő csomagok (főleg könyvtárakban).
3. lista a legegyszerűbb példa a használat Pygame.
3. lista példa Pygame-alkalmazás (fájl hwpg.py)
4. listán egy példát mutat a rajzot a virágláda, akkor is készít, nem csak az ablak, hanem a különböző ablakkeretek.
4. lista példa Pygame-alkalmazás (fájl drawing.py)
A 4. ábra az eredménye az alkalmazást futtató:
Pygame is korlátozott funkcionalitással dolgozó néhány közös audio formátumok (start, stop, háttér-lejátszás). Például, itt van, hogyan lehet játszani .wav-fájl:
A legegyszerűbb esetben ez a funkció esetleg nem piacképes. De bonyolultabb esetekben az ilyen problémákat kell használni speciális ingyenes projektek például SoX, Ogg, Vorbis, Speex, FLAC és kodekek.
Automatizálják GUI-alkalmazások PyZenity
Néha alkalmazás igényel egy egyszerű GUI-felület, például egy sor egyes párbeszédpanelek, amelyek megkövetelik a felhasználónevét és jelszavát, vagy a fájlnév. Az ilyen forgatókönyvek lehetséges könyvtárak fentiekben ismertetett redundáns. De kifejezetten erre a fajta probléma ott zenity konzol segédprogram, amelynek célja, hogy hozzon létre egy GUI-felület a héj nyelvet. Persze, ott van a felület azt a Python megvalósított PyZenity projektben.
Ugyanaz a fájl lehet használni Python 3:
A telepítés után mi is létrehozhatunk egy egyszerű alkalmazás (lásd enter.py python_gui.tgz fájl az archívumban.)
És futtatni:
Ennek eredményeként kapta ezt az ablakot:
Azt is írja a forgatókönyvet, hogy válasszon ki egy értéket a listából (lásd. Select.py python_gui.tgz fájl az archívumban).
Az eredmény az ezen alkalmazás futtatása a 6. ábrán látható:
következtetés
De függetlenül a használt eszköz, a logika és a szerkezet az ilyen alkalmazások köré épül a fogantyú felhasználói felület eseményeket. Számos eszköz lesz sajátosságait, mint például az a 2D és 3D-grafika, animáció vagy multimédia formátumokat, amely segít ki egy eszközt, amely alkalmas egy adott célra.