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:

Finomságok használatának python nyelven 10. rész

Finomságok használatának python nyelven 10. rész

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:

Finomságok használatának python nyelven 10. rész

Finomságok használatának python nyelven 10. rész

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)

Finomságok használatának python nyelven 10. rész

Finomságok használatának python nyelven 10. rész

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ó:

Finomságok használatának python nyelven 10. rész

Finomságok használatának python nyelven 10. rész

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:

Finomságok használatának python nyelven 10. rész

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ó:

Finomságok használatának python nyelven 10. rész

Finomságok használatának python nyelven 10. rész

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.

Letölthető Resources

Kapcsolódó témák