Crea la tua prima GUI in Python con Glade e GTK+

Punti chiave

  • Gli sviluppatori Python possono utilizzare GTK+ e Glade per creare GUI intuitive utilizzando un’interfaccia visiva.
  • La configurazione dell’ambiente per questo esempio implica l’installazione di Python, GTK+, Glade e PyGObject.
  • L’utilizzo di GTK+ e Glade per lo sviluppo della GUI Python accelera il processo e separa la progettazione della GUI dal codice.

Python è un linguaggio accessibile perfetto per l’analisi dei dati e lo sviluppo web. Ma è un’ottima scelta anche per lo sviluppo di app GUI. GTK+ e Glade semplificano il processo di creazione di semplici app multipiattaforma.

GTK+ e Glade Interface Designer per sviluppatori Python

GTK+ (GIMP Toolkit) e Glade Interface Designer sono una combinazione formidabile per gli sviluppatori Python che desiderano creare interfacce utente grafiche intuitive e piacevoli.

GTK+ è un toolkit multipiattaforma che puoi utilizzare per lo sviluppo di GUI. È compatibile con una varietà di sistemi operativi, inclusi Linux, Windows e macOS.

Glade Interface Designer, uno strumento complementare a GTK+, ti consente di progettare GUI senza dover scrivere codice di layout. Puoi usarlo per creare una GUI in un ambiente WYSIWYG con pochi clic e semplici funzioni di trascinamento della selezione.

Configurazione dell’ambiente Python per lo sviluppo GTK+ e Glade

La configurazione dell’ambiente è un primo passo fondamentale per garantire un flusso di lavoro fluido ed efficiente.

1. Installa Python

Inizia assicurandoti di avere Python installato sul tuo sistema. Vedrai il codice Python 3 negli esempi che leggi, poiché offre supporto e integrazione migliori per GTK+ e Glade. Per Linux e macOS, Python è solitamente preinstallato.

Gli utenti Windows possono scaricare Python da il sito web ufficiale di Python.

2. Installa GTK+

Puoi installare GTK+ utilizzando un gestore di pacchetti.

Per i sistemi Linux basati su Ubuntu e Debian utilizzare:

 sudo apt-get install libgtk-3-dev 

Per Fedora e simili:

 sudo dnf install gtk3-devel 

Su macOS, utilizzando Homebrew:

 brew install gtk+3 

Gli utenti Windows possono scaricare GTK+ da Pagina di download ufficiale di GTK. Ma se hai installato MSYS2, puoi aprire la riga di comando di MSYS2 e utilizzare questo comando:

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

3. Installa Glade

È possibile utilizzare la riga di comando per installare Glade.

Per le distribuzioni Linux basate su Ubuntu e Debian:

 sudo apt-get install glade 

Su Fedora:

 sudo dnf install glade 

Gli utenti macOS possono utilizzare Homebrew:

 brew install glade 

Gli utenti Windows possono utilizzare il seguente comando con MSYS2:

 pacman -S mingw-w64-x86_64-glade 

4. Collegamenti Python per GTK+

Installa PyGObject per integrare GTK+ con Python. Il comando che utilizzerai per questo è:

 pip install PyGObject 

Se si verifica un errore del tipo “Building wheel for pycairo (pyproject.toml) not running” durante l’installazione di PyGObject, sarà necessario installare anche il pacchetto cairo.

Per le distribuzioni Linux basate su Ubuntu e Debian:

 sudo apt-get install libcairo2-dev 

Per Fedora:

 sudo yum install cairo-devel 

Su macOS:

 brew install pygobject3 

5. Configurazione di un ambiente virtuale (facoltativo)

È buona norma utilizzare un ambiente virtuale per i tuoi progetti Python. Questo isola le dipendenze del tuo progetto. Crea e attiva un ambiente virtuale su Linux con questi comandi da terminale:

 python -m venv myenv
source myenv/bin/activate

Sull’utilizzo di Windows:

 python -m venv myenv
myenv\Scripts\activate

Su macOS, per garantire che l’ambiente virtuale possa accedere ai pacchetti che producono installazioni, utilizzare:

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

6. Verifica dell’installazione

Per verificare che GTK+ e Glade siano installati, crea un semplice script Python che importi GTK:

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

print("GTK+ version:", Gtk.get_major_version(), Gtk.get_minor_version())

Quando esegui questo script, verrà restituita la versione GTK+ installata. Se tutto va bene, hai configurato il tuo ambiente di sviluppo.

Creazione di una semplice app GUI con Glade Interface Designer e Python

Puoi progettare la tua app GUI in Glade Interface Designer ed esportare il layout come file di progetto. Puoi quindi accedere a quel file di progetto dal tuo codice Python.

Progetta la tua GUI con Glade

L’interfaccia drag-and-drop di Glade semplifica la concentrazione sulla progettazione senza impantanarsi nel codice sottostante. Avvia Glade dal menu dell’applicazione del tuo sistema o dalla riga di comando con questo comando:

 glade

Dovresti vedere l’interfaccia di Glade dove puoi iniziare a creare il layout della GUI.

Il pulsante Crea nuovo progetto in alto a sinistra fornisce una tela bianca per la progettazione della GUI. Glade offre un’ampia varietà di widget nella barra superiore, inclusi pulsanti, input di testo ed etichette. Trascina questi widget sulla tua tela per iniziare a definire lo stile della tua GUI. Puoi ridimensionare e posizionare i widget in base alle tue esigenze di progettazione.

Per prima cosa seleziona il widget GtkWindow dal menu Toplevels:

Nella pagina Generale nella barra destra di Glade, vedrai un’opzione ID. Questo ID è il nome univoco del widget che hai aggiunto. Per questo esempio, assegna l’ID myMainWindow alla GtkWindow che hai aggiunto.

Ora puoi aggiungere widget alla finestra principale che hai creato. Vai su Contenitori nella barra in alto, seleziona il widget GtkBox e trascinalo nel tuo spazio di lavoro. Quindi assegnagli un ID, myMainBox.

Dopo aver aggiunto il widget GtkBox, vedrai varie opzioni a destra del tuo spazio di lavoro specifiche per quel widget. Puoi modificare l’intero progetto qui senza scrivere alcun codice.

Successivamente, aggiungi un widget di controllo al tuo progetto. Per fare ciò, vai su Controllo nella barra in alto, seleziona GtkButton come esempio e trascinalo ovunque nel GtkBox. Dagli l’ID, myButton. Se lo desideri, puoi anche modificare il testo del pulsante utilizzando la scheda Generale nel pannello di destra.

GtkButton è un widget cliccabile, quindi puoi definire un gestore Python per esso e scrivere il codice appropriato in seguito. Vai alla scheda Segnali nel menu a destra e specifica un gestore per il segnale cliccato. Per questo esempio, chiamalo on_button_clicked.

Ora puoi salvare il progetto della GUI come file di progetto. Salva il file come myDesign.glade.

Utilizzo del file di progettazione Glade dal codice Python

Crea un file app.py nella stessa directory del tuo file myDesign.glade. Incolla il seguente codice in questo file:

 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()

Questo codice cambierà il colore dello sfondo ogni volta che fai clic sul pulsante. Nota le chiamate a self.builder.get_object() che passano gli ID dei widget che hai definito in Glade.

Esegui il tuo script Python usando questo comando per vedere il risultato:

 python3 app.py 

Vantaggi dell’utilizzo di GTK+ e Glade per lo sviluppo di GUI Python

L’utilizzo di GTK+ e Glade per lo sviluppo della GUI Python offre vantaggi evidenti. Di solito, la creazione di una GUI richiede molto tempo e impegno. Ma con Glade Interface Designer puoi accelerare il processo. Glade offre anche un’ampia gamma di widget, ognuno facile da usare come il pulsante nell’esempio.

Un vantaggio chiave di Glade è la sua capacità di mantenere la progettazione della GUI separata dal codice. Ciò semplifica la manutenzione e l’aggiornamento della GUI. Questo approccio porta a un codice più pulito e meglio organizzato, in linea con le moderne pratiche di programmazione.