Subtilitățile de a folosi partea limbajului python 10

În acest articol ne vom uita la o altă bibliotecă pentru a crea GUI-aplicații în Python - wxPython și rândul său, două probleme: lucrul cu grafica 2D folosind biblioteci de pygame și să automatizeze GUI-aplicație cu ajutorul unor scenarii PyZenity.

Proiectul wxPython este derivat din binecunoscutul proiect wxWidgets. Baza wxWidgets GUI-biblioteca este implementat în limbajul C ++ și cuprinde un set proiect de C ++ clase de feature-bogat (structuri de date de nivel înalt, etc.). Și wxPython oferă la rândul său "wrappers" pentru clasele wxWidgets asociate cu GUI.

Notă. Sistemul grafic wxWidgets declară doar un API de nivel înalt pentru mai multe platforme, iar pentru cartografiere directă se utilizează un API de nivel scăzut (nativ) pentru o anumită platformă. Sarcina principală a bibliotecii este de a asigura capacitatea de lucru a aplicațiilor scrise cu ea pe diferite sisteme de operare. Prin urmare, în paralel, există mai multe implementări diferite ale wxWidgets: wxGTK, wxMSW, wxMac, etc. WxWidgets este o abstracție de nivel mai înalt decât bazele grafice pe care este construită.

Biblioteca wxWidgets nu este la fel de populară cu Linux ca GTK + sau Ot, deci tot ce trebuie să utilizați wxPython trebuie să fie instalat separat:

Va fi suficient să instalați pachetul python-wxgtk2. și instalează toate celelalte pachete:

Listarea 1 prezintă o aplicație simplă, care utilizează wxPython (fișier python_gui.tgz bare.py din arhiva în „Descărcări“):

Listarea 1. Exemplu de aplicație wxPython

În acest exemplu, este creată o fereastră de aplicație GUI goală, care, sub controlul managerului de ferestre Linux, poate fi mutată, redimensionată, restrânsă și extinsă la ecran complet:

Subtilitățile de a folosi partea limbajului python 10

Subtilitățile de a folosi partea limbajului python 10

Lista 2 prezintă o altă aplicație wxPython care folosește capabilitățile API-ului wxPython în terminologia clasei Python. Această aplicație vă permite de la Python-cod pentru a redirecționa fluxurile și SYSOUT SYSERR create într-o fereastră (de exemplu wxPython pot fi găsite în manualele corespunzătoare din secțiunea „Resurse“):

Listing 2. Redirecționarea fluxurilor de ieșire (fișierul sysout.py)

Rulați aplicația și vedeți ce mesaje de tipărire vor fi trimise în fereastra aplicației și pe cele la terminalul de lansare:

Figura 2 prezintă un exemplu de aplicație:

Subtilitățile de a folosi partea limbajului python 10

Subtilitățile de a folosi partea limbajului python 10

Există opinii că implementarea wxPython ar putea deveni o bibliotecă standard pentru GUI pentru Python dacă această poziție nu ar fi fost deja ocupată de Tkinter. Cu toate acestea, WxPython este utilizat în multe proiecte deschise.

Spre deosebire de bibliotecile revizuite anterior, Pygame este un instrument pentru implementarea unei varietăți de strategii de joc în ferestrele grafice. Prin urmare, pe lângă instrumentele de afișare a interfeței grafice, acesta conține și câteva instrumente pentru desenarea acestor ferestre, crearea de animații și posibilități limitate de redare a fluxurilor audio.

Acest pachet nu se aplică bibliotecii module standard Python, deci va trebui să o instalați separat.

Notă. Datorită extensiilor de funcționalitate de mai sus, instalarea acestui pachet va duce la instalarea ulterioară a unui număr mare de pachete dependente: pulseaudio-esound-compat. Oss-compat. libsmpeg și așa mai departe. Dar acesta este comportamentul standard pentru toate instrumentele GUI, deoarece utilizează multe pachete suplimentare (în special biblioteci).

Lista 3 prezintă un exemplu simplu de utilizare a programului PyGame.

Listă 3. Exemplu de aplicație PyGame (fișier hwpg.py)

Subtilitățile de a folosi partea limbajului python 10

Subtilitățile de a folosi partea limbajului python 10

Lista 4 prezintă un exemplu de desen într-o cutie de ferestre, puteți desena, de asemenea, nu numai în fereastra în sine, dar și într-o varietate de cadre ferestre.

Listarea 4. Un exemplu de aplicație PyGame (fișier drawing.py)

Figura 4 prezintă rezultatul executării aplicației:

Subtilitățile de a folosi partea limbajului python 10

Subtilitățile de a folosi partea limbajului python 10

De asemenea, PyGame are o funcționalitate limitată pentru lucrul cu unele formate audio obișnuite (pornire, oprire, redare în fundal). De exemplu, iată cum puteți să redați fișierul .wav:

În scenarii simple, această funcționalitate poate fi în cerere. Dar în cazuri mai complexe pentru astfel de sarcini este necesar să folosim proiecte gratuite specializate, de exemplu SoX, Ogg, Vorbis, Speex, FLAC și codec-urile lor.

Automatizarea aplicațiilor GUI cu PyZenity

Uneori, o aplicație necesită o interfață grafică simplă, de exemplu un set de casete de dialog în care se solicită un nume de utilizator și o parolă sau este selectat un nume de fișier. În astfel de scenarii, capacitățile bibliotecilor descrise anterior sunt redundante. Dar, în mod special pentru sarcini de acest tip, există un utilitar de consolă Zenity, conceput pentru a forma interfețe GUI din limba interpretului de comandă. Desigur, există o interfață de la Python, implementată în proiectul PyZenity.

Aceeași arhivă poate fi utilizată pentru Python 3:

După instalare, vom putea crea cea mai simplă aplicație (vedeți fișierul enter.py din arhiva python_gui.tgz):

Și rulați-o:

Ca rezultat, veți obține această fereastră:

Subtilitățile de a folosi partea limbajului python 10

De asemenea, puteți să pregătiți un script pentru a selecta o singură valoare din lista posibilă (a se vedea fișierul select.py din arhiva python_gui.tgz).

Rezultatul executării acestei aplicații este prezentat în Figura 6:

Subtilitățile de a folosi partea limbajului python 10

Subtilitățile de a folosi partea limbajului python 10

concluzie

Dar indiferent de instrumentul utilizat, logica și structura unor astfel de aplicații vor fi construite în jurul procesării evenimentelor din interfața cu utilizatorul. Instrumentele diferite vor avea capabilități specifice, de exemplu, suport pentru grafica 2D și 3D, animație sau formate multimedia, care vă vor ajuta să alegeți instrumentul potrivit pentru o anumită sarcină.

Descărcați resurse

Subiecte conexe