Creați-vă prima GUI în Python cu Glade și GTK+

Recomandări Esențiale

  • Dezvoltatorii Python pot valorifica GTK+ și Glade pentru a crea interfețe grafice intuitive, folosind un mediu vizual de design.
  • Pentru a pregăti mediul de dezvoltare, este necesară instalarea Python, GTK+, Glade și PyGObject.
  • Alegerea GTK+ și Glade în dezvoltarea interfețelor grafice (GUI) Python accelerează procesul și separă designul vizual de logica de cod.

Python, fiind un limbaj accesibil, este excelent pentru analiza datelor și crearea de aplicații web. Dar se dovedește a fi și o opțiune remarcabilă pentru dezvoltarea interfețelor grafice. GTK+ și Glade simplifică crearea de aplicații simple și portabile.

GTK+ și Glade: Unelte de Design pentru Interfețe, Destinate Dezvoltatorilor Python

Pentru programatorii Python care aspiră să creeze interfețe vizuale intuitive și atractive, GTK+ (GIMP Toolkit) împreună cu Glade Interface Designer reprezintă o combinație ideală.

GTK+ este un set de instrumente multiplatformă, util în dezvoltarea GUI, care funcționează pe diverse sisteme de operare, cum ar fi Linux, Windows și macOS.

Glade Interface Designer, un instrument complementar pentru GTK+, permite proiectarea interfețelor grafice fără scrierea codului de aspect. Prin intermediul său, se poate construi o interfață grafică într-un mediu WYSIWYG, cu funcții simple de drag-and-drop.

Configurarea Mediului Python pentru Dezvoltarea cu GTK+ și Glade

Organizarea mediului de lucru este un pas fundamental pentru un proces de dezvoltare eficient și fără obstacole.

1. Instalarea Python

Începeți prin a verifica dacă Python este instalat pe sistemul dvs. În exemplele prezentate, se va folosi cod Python 3, care oferă suport îmbunătățit pentru GTK+ și Glade. În general, Python vine preinstalat pe sistemele Linux și macOS.

Utilizatorii de Windows pot descărca Python de pe pagina oficială Python.

2. Instalarea GTK+

Instalarea GTK+ se poate face utilizând un manager de pachete.

Pentru sistemele Linux bazate pe Ubuntu și Debian, folosiți:

sudo apt-get install libgtk-3-dev

Pentru Fedora și distribuții similare:

sudo dnf install gtk3-devel

Pentru macOS, utilizând Homebrew:

brew install gtk+3

Utilizatorii de Windows pot găsi GTK+ pe pagina de descărcare GTK. Alternativ, dacă aveți MSYS2 instalat, puteți utiliza următoarea comandă în linia de comandă MSYS2:

pacman -S mingw-w64-x86_64-python-gobject

3. Instalarea Glade

Glade poate fi instalat folosind linia de comandă.

Pentru distribuțiile Linux bazate pe Ubuntu și Debian:

sudo apt-get install glade

Pentru Fedora:

sudo dnf install glade

Utilizatorii de macOS pot folosi Homebrew:

brew install glade

Utilizatorii de Windows pot executa această comandă cu MSYS2:

pacman -S mingw-w64-x86_64-glade

4. Legăturile Python pentru GTK+

Pentru integrarea GTK+ cu Python, instalați PyGObject prin intermediul comenzii:

pip install PyGObject

Dacă întâmpinați o eroare de tipul „Building wheel for pycairo (pyproject.toml) does not run” în timpul instalării PyGObject, va fi necesar să instalați și pachetul cairo.

Pentru distribuțiile Linux bazate pe Ubuntu și Debian:

sudo apt-get install libcairo2-dev

Pentru Fedora:

sudo yum install cairo-devel

Pentru macOS:

brew install pygobject3

5. Configurarea unui Mediu Virtual (opțional)

Utilizarea unui mediu virtual este o practică bună pentru gestionarea dependențelor fiecărui proiect Python. Pentru a crea și activa un mediu virtual pe Linux, utilizați aceste comenzi:

python -m venv myenv
source myenv/bin/activate

Pe Windows, folosiți:

python -m venv myenv
myenv\Scripts\activate

Pe macOS, pentru a permite mediului virtual să acceseze pachetele instalate, utilizați:

python -m venv --system-site-packages myenv
source myenv/bin/activate

6. Verificarea Instalării

Pentru a confirma că GTK+ și Glade sunt instalate corect, creați un script Python care importă GTK:

import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
print("Versiunea GTK+:", Gtk.get_major_version(), Gtk.get_minor_version())

Executarea acestui script va afișa versiunea GTK+ instalată. Dacă nu apar erori, mediul de dezvoltare este configurat cu succes.

Dezvoltarea unei Aplicații GUI Simple cu Glade și Python

Interfața grafică a aplicației poate fi proiectată în Glade Interface Designer și exportată ca fișier de proiect, care va fi apoi accesat din codul Python.

Proiectarea Interfeței Grafice în Glade

Interfața de tip drag-and-drop a Glade permite concentrarea pe design, fără a fi limitat de cod. Lansați Glade din meniul aplicațiilor sau prin linia de comandă, utilizând:

glade

Se va afișa interfața Glade, de unde puteți începe crearea designului GUI.

Prin intermediul butonului „Creare Proiect Nou” din stânga sus, obțineți o zonă de lucru goală pentru designul GUI. Glade oferă o paletă variată de widget-uri în bara de sus, inclusiv butoane, câmpuri de text și etichete. Trageți aceste widget-uri pe pânză pentru a începe stilizarea GUI, redimensionându-le și poziționându-le după preferințe.

Începeți prin a selecta widget-ul GtkWindow din meniul Toplevels:

În secțiunea „General” din bara laterală dreapta a Glade, identificați opțiunea „ID”. Aceasta reprezintă numele unic al widget-ului. Pentru acest exemplu, setați ID-ul „myMainWindow” pentru GtkWindow.

Acum, adăugați widget-uri în fereastra principală nou creată. Din categoria „Containers”, selectați widget-ul GtkBox și trageți-l în zona de lucru. Setați ID-ul la „myMainBox”.

După adăugarea widget-ului GtkBox, apar diverse opțiuni specifice acestui widget în partea dreaptă a zonei de lucru, permițând editarea designului fără a scrie cod.

În continuare, adăugați un element de control în design. Din categoria „Control”, selectați un GtkButton și trageți-l în GtkBox. Setați ID-ul la „myButton”. Opțional, puteți modifica textul butonului în secțiunea „General”.

GtkButton fiind un widget interactiv, este posibilă definirea unui handler Python pentru acesta. În fila „Semnale”, specificați un handler pentru evenimentul de clic, numindu-l „on_button_clicked” pentru acest exemplu.

Salvați designul GUI ca fișier de proiect, numindu-l „myDesign.glade”.

Integrarea Designului Glade în Codul Python

Creați un fișier „app.py” în același director cu „myDesign.glade”. Introduceți următorul cod:

import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
from gi.repository import Gdk

class MyApp:
def __init__(self):
self.builder = Gtk.Builder()
self.builder.add_from_file("myDesign.glade")
self.window = self.builder.get_object("myMainWindow")
self.window.connect("destroy", Gtk.main_quit)
self.button = self.builder.get_object("myButton")
self.button.connect("clicked", self.on_button_clicked)
self.color_toggle = False

def on_button_clicked(self, widget):
color = "#FF0000" if self.color_toggle else "#00FF00"
self.window.modify_bg(Gtk.StateType.NORMAL, Gdk.color_parse(color))
self.color_toggle = not self.color_toggle

def run(self):
self.window.show_all()
Gtk.main()

if __name__ == "__main__":
app = MyApp()
app.run()

Acest cod modifică culoarea de fundal la fiecare clic pe buton. Se observă utilizarea apelurilor self.builder.get_object(), care preiau elementele după ID-urile definite în Glade.

Rulați scriptul Python cu această comandă pentru a vizualiza rezultatul:

python3 app.py

Avantajele Utilizării GTK+ și Glade în Dezvoltarea Interfețelor Grafice Python

Alegerea GTK+ și Glade pentru dezvoltarea GUI în Python aduce avantaje semnificative. De obicei, crearea unei interfețe grafice consumă timp și resurse. Glade accelerează acest proces, oferind o gamă largă de widget-uri, toate ușor de utilizat.

Un avantaj major al Glade este capacitatea de a separa designul interfeței grafice de codul propriu-zis. Această separare simplifică actualizarea și menținerea GUI, conducând la un cod mai organizat, conform cu practicile moderne de programare.