Python interfaccia grafica: come creare una GUI una facilmente

Foto dell'autore

Andrea Barbieri

 

Home > News feed > Competenze e tecnologie > Competenze informatiche > Python interfaccia grafica: come creare una GUI una facilmente

Creare un’interfaccia grafica (GUI) in Python può essere un compito relativamente semplice grazie a vari moduli disponibili. Uno dei moduli più popolari e ampiamente utilizzati per questo scopo è tkinter. Ecco un esempio di base su come creare una semplice GUI con tkinter:

Istruzioni per una GUI con Python e tkinter

  1. Importiamo il modulo tkinter.
  2. Definiamo una funzione on_button_click che sarà chiamata quando il pulsante viene premuto.
  3. Creiamo una finestra principale usando tk.Tk().
  4. Aggiungiamo un’etichetta, un campo di inserimento e un pulsante alla finestra.
  5. Usiamo il metodo mainloop per avviare il loop principale della GUI, permettendo all’utente di interagire con essa.

Quando esegui questo codice, apparirà una finestra con un’etichetta, un campo di inserimento e un pulsante. Puoi inserire il tuo nome nel campo di inserimento e premere il pulsante per ricevere un saluto personalizzato.

Il codice

Codice Python:

```python
import tkinter as tk

def on_button_click():
    label.config(text="Ciao, " + name_entry.get() + "!")

# Crea una finestra principale
root = tk.Tk()
root.title("Saluto GUI")

# Crea un'etichetta
label = tk.Label(root, text="Inserisci il tuo nome:")
label.pack(pady=20)

# Crea un campo di inserimento (entry)
name_entry = tk.Entry(root)
name_entry.pack(pady=20)

# Crea un pulsante che, quando premuto, saluta l'utente
button = tk.Button(root, text="Saluta!", command=on_button_click)
button.pack(pady=20)

# Avvia il loop principale della GUI
root.mainloop()

Un’interfaccia grafica più elaborata

In questo esempio, abbiamo implementato l’applicazione come una classe chiamata SimpleApp. Questa classe ha un’interfaccia più pulita e offre una migliore organizzazione del codice.

  1. Strutturazione con Classi: L’utilizzo delle classi per costruire GUI in tkinter è un approccio comune e permette una migliore organizzazione e scalabilità del codice.
  2. Messagebox: Abbiamo aggiunto un controllo che mostra una finestra di dialogo se il campo di inserimento è vuoto, utilizzando messagebox.
  3. Grid Layout: Invece di usare pack, abbiamo utilizzato grid per una disposizione più flessibile dei widget all’interno del frame superiore.

Questo esempio fornisce una base più solida e organizzata per costruire applicazioni GUI più complesse con tkinter.

import tkinter as tk
from tkinter import messagebox

class SimpleApp:
    def __init__(self, root):
        self.root = root
        self.root.title("Applicazione GUI")

        # Frame superiore per l'input
        self.upper_frame = tk.Frame(root)
        self.upper_frame.pack(pady=20)

        self.label = tk.Label(self.upper_frame, text="Inserisci il tuo nome:")
        self.label.grid(row=0, column=0, padx=10)

        self.name_entry = tk.Entry(self.upper_frame)
        self.name_entry.grid(row=0, column=1, padx=10)

        # Pulsante per salutare
        self.greet_button = tk.Button(root, text="Saluta!", command=self.greet)
        self.greet_button.pack(pady=20)

    def greet(self):
        user_name = self.name_entry.get()
        if user_name:
            messagebox.showinfo("Saluto", f"Ciao, {user_name}!")
        else:
            messagebox.showwarning("Attenzione", "Per favore, inserisci il tuo nome.")

if __name__ == "__main__":
    root = tk.Tk()
    app = SimpleApp(root)
    root.mainloop()

Come apparirebbe la GUI del codice sopra

  1. Finestra principale: Una finestra con il titolo “Applicazione GUI”.
  2. Sezione di input: Nella parte superiore della finestra, ci sarà un’etichetta con il testo “Inserisci il tuo nome:” affiancata da un campo di inserimento (una casella bianca dove puoi digitare).
  3. Pulsante: Sotto la sezione di input, al centro della finestra, ci sarà un pulsante con il testo “Saluta!”.

Quando inserisci un nome nel campo di inserimento e premi il pulsante “Saluta!”, apparirà una finestra di dialogo. Se il campo è vuoto, la finestra di dialogo avrà il titolo “Attenzione” e mostrerà il messaggio “Per favore, inserisci il tuo nome”. Se hai inserito un nome, la finestra di dialogo avrà il titolo “Saluto” e mostrerà un messaggio come “Ciao, [Nome]!”.

Perché usare una GUI in Python

L’interfaccia grafica dell’utente (GUI) rappresenta un’evoluzione cruciale rispetto all’interfaccia a riga di comando tradizionale. Sebbene esista una curva di apprendimento nell’implementazione di GUI, il valore aggiunto in termini di usabilità e funzionalità può giustificare l’investimento in termini di tempo e risorse. Python, con le sue numerose librerie e il suo ecosistema vasto, rende relativamente semplice e diretto il processo di creazione di GUI potenti e interattive.

User-Friendly

Una GUI offre un’interfaccia visiva che rende più semplice e intuitivo l’interazione con l’utente. Mentre una riga di comando potrebbe richiedere una conoscenza specifica dei comandi da utilizzare, una GUI fornisce icone, pulsanti e menu che sono immediatamente comprensibili per la maggior parte degli utenti.

Accessibilità

Per gli utenti non tecnici o per coloro che non sono familiari con la programmazione, una GUI può rendere accessibili e utilizzabili applicazioni che altrimenti potrebbero risultare complesse o incomprensibili.

Estetica e Presentazione

Una GUI ben progettata non solo è funzionale, ma può anche essere visivamente piacevole. Questo può aumentare l’attrattiva di un’applicazione, soprattutto se è destinata al mercato di consumo.

Interazione Avanzata

Le GUI consentono una vasta gamma di interazioni, compresi gli eventi basati su azioni dell’utente, come il trascinamento della selezione, l’uso di dispositivi di puntamento o la gestione di input multi-touch.

Integrazione con Altre Tecnologie

Molte librerie GUI in Python, come tkinter, PyQt o wxPython, offrono strumenti per integrare facilmente funzionalità avanzate come la grafica 2D/3D, la riproduzione di audio/video o l’interazione con dispositivi hardware specifici.

Portabilità

Alcune librerie GUI supportano una vasta gamma di piattaforme. Ad esempio, un’applicazione sviluppata con PyQt può essere eseguita su Windows, macOS e Linux senza apportare significative modifiche al codice sorgente.

Fonti e sitografia

Lascia un commento