Tutti gli esempi sono in python.
1. Programmazione guidata dagli eventi (Event-Driven Programming).
Descrizione.
- Il flusso del programma non è sequenziale, ma determinato da eventi esterni, come:
- clic del mouse,
- pressione di tasti,
- messaggi di rete,
- timer.
- Il programma risponde agli eventi tramite funzioni callback o listener.
Concetti chiave.
- Evento: azione o segnale che avvia una risposta.
- Listener / Handler: funzione che viene eseguita quando si verifica l’evento.
- Loop principale (main loop): ciclo che rimane in ascolto degli eventi.
Esempio concettuale (Python con Tkinter).
import tkinter as tk
def clic_bottone():
print(“Hai cliccato il bottone!”)
finestra = tk.Tk()
bottone = tk.Button(finestra, text=”Cliccami”, command=clic_bottone)
bottone.pack()
finestra.mainloop() # loop principale che ascolta gli eventi
2. Interfacce grafiche (GUI).
Descrizione.
- Una GUI permette all’utente di interagire con il programma tramite finestre, pulsanti, caselle di testo, menu, ecc.
- È strettamente legata alla programmazione guidata dagli eventi, perché le azioni dell’utente generano eventi.
Concetti chiave.
- Widget: elementi grafici (pulsanti, etichette, caselle di testo, menu).
- Contenitore (container): finestra o frame dove si posizionano i widget.
- Layout manager: regole per posizionare i widget (griglie, pack, ecc.).
- Callback/event handler: funzione associata all’evento di un widget.
Esempio di base (Tkinter).
import tkinter as tk
def saluta():
nome = entry_nome.get()
label_risposta.config(text=f”Ciao, {nome}!”)
finestra = tk.Tk()
finestra.title(“Esempio GUI”)
entry_nome = tk.Entry(finestra)
entry_nome.pack()
bottone = tk.Button(finestra, text=”Saluta”, command=saluta)
bottone.pack()
label_risposta = tk.Label(finestra, text=””)
label_risposta.pack()
finestra.mainloop()
Spiegazione:
- L’utente scrive il nome nella casella di testo.
- Quando clicca il bottone, viene chiamata la funzione saluta.
- Il risultato viene mostrato nella Label.
3. Suggerimenti pratici per il laboratorio.
- Imparare a creare widget base: pulsanti, etichette, caselle di testo, menu.
- Gestire eventi comuni: click, tasti, input.
- Comprendere il main loop e l’importanza di non bloccarlo.
- Saper combinare logica del programma con eventi GUI.
Nota: anche se Tkinter è il più comune per Python, i concetti sono simili in altri linguaggi:
- Java → Swing o JavaFX
- C# → Windows Forms o WPF
- JavaScript → manipolazione DOM + event listener
