1. Widget "Etichetta" (Label
)
Oggi continueremo a scoprire questo fantastico strumento, parlando in particolare delle etichette
(Label
) e dei campi di testo (Text
).
Sì, è proprio quello di cui hai bisogno affinché la tua applicazione non solo esegua compiti difficili,
ma condivida anche questi straordinari risultati con l'utente, sia attraverso brevi messaggi che grandi
quantità di testo.
Prima di tuffarci nell'avventura dei campi di testo, iniziamo con qualcosa di più semplice: le etichette. Un'etichetta in Tkinter è un widget compatto e accogliente che ci permette di mostrare informazioni statiche. Praticamente come un post-it sul frigorifero, ma nella tua applicazione. Può essere utilizzata per titoli, descrizioni e persino interi aforismi.
Creazione e personalizzazione delle etichette
Creare un'etichetta in Tkinter è più facile che imparare una nuova sintassi di un linguaggio di programmazione (ricordi quanto fosse doloroso la prima volta?). Ecco un esempio di codice con un'etichetta:
import tkinter as tk
# Creiamo la finestra principale
root = tk.Tk()
root.title("La mia prima etichetta")
# Creiamo un'etichetta
label = tk.Label(root, text="Ciao, mondo!", font=("Arial", 14))
label.pack()
# Avviamo il ciclo principale di gestione eventi
root.mainloop()
Qui abbiamo creato un'etichetta che dice "Ciao, mondo!". Come puoi vedere, è possibile configurare font e dimensioni del testo, rendendola molto flessibile. Puoi scegliere tu stesso lo stile, la dimensione e persino il colore del testo, in modo che si adatti al tuo design.
2. Widget "Campo di testo" (Text
)
Ora che conosciamo le etichette, facciamo un passo avanti e parliamo dei campi di testo.
I campi di testo (Text
) sono come un blocco note integrato nella tua applicazione.
Permettono di visualizzare e modificare grandi quantità di testo. È utile se devi aggiungere la possibilità
per l'utente di interagire con molto testo o se semplicemente vuoi mostrare quanto codice hai scritto nel fine
settimana.
Utilizzo dei campi di testo
Ecco un esempio su come creare un campo di testo e riempirlo con del testo:
import tkinter as tk
# Creiamo la finestra principale
root = tk.Tk()
root.title("Campo di testo")
# Creiamo un campo di testo
text = tk.Text(root, height=10, width=40)
text.pack()
# Riempiamo il campo con del testo
text.insert(tk.END, "Tanto tempo fa, in una galassia lontana lontana...\n")
text.insert(tk.END, "Il tuo testo qui...")
# Avviamo il ciclo principale di gestione eventi
root.mainloop()
Come si vede dall'esempio, possiamo inserire testo nel campo di testo utilizzando il metodo insert
.
Il parametro tk.END
indica che il testo dovrebbe essere aggiunto alla fine del testo esistente.
Personalizzazione dei font e degli stili di testo
Per entrambi i tipi di widget possiamo configurare gli stili del testo. Questo include font, dimensioni, colori e molto altro. Ecco un esempio su come farlo per un'etichetta e un campo di testo:
label = tk.Label(root, text="Ciao, mondo!", font=("Courier", 16, "bold"), fg="blue")
label.pack()
text.tag_configure("highlight", font=("Verdana", 12), foreground="red")
text.insert(tk.END, "Questo testo sarà evidenziato", "highlight")
Qui abbiamo cambiato il font e il colore del testo nell'etichetta e utilizzato i tag per evidenziare il testo
nel campo di testo.
Nota l'utilizzo di tag_configure
per il campo di testo: permette di creare un "tag" che possiamo
applicare a qualsiasi parte del testo. È uno strumento potente che ti consente di gestire la formattazione di
specifiche parti di testo nel campo.
3. Integrazione nell'applicazione
Ora che sappiamo come creare e stilizzare etichette e campi di testo, diamo un'occhiata a un esempio reale di utilizzo in un'applicazione. Immagina di creare un semplice editor di testo. Questo editor può visualizzare e modificare file di testo.
import tkinter as tk
from tkinter import filedialog
# Funzione per aprire un file
def open_file():
file_path = filedialog.askopenfilename()
if file_path:
with open(file_path, 'r') as file:
content = file.read()
text.delete(1.0, tk.END)
text.insert(tk.END, content)
# Creiamo la finestra principale
root = tk.Tk()
root.title("Editor di testo")
# Creiamo i widget
label = tk.Label(root, text="Editor di testo", font=("Arial", 16))
label.pack()
text = tk.Text(root, wrap='word', font=("Arial", 12))
text.pack(expand=1, fill='both')
open_button = tk.Button(root, text="Apri file", command=open_file)
open_button.pack()
# Avviamo il ciclo principale di gestione eventi
root.mainloop()
In questo esempio abbiamo creato una semplice applicazione che permette all'utente di aprire file di testo e di
visualizzarne il contenuto in un campo di testo.
Usando il widget Button
, abbiamo collegato il comando di apertura del file alla funzione
open_file
, che utilizza la finestra di dialogo filedialog
per selezionare un file.
È molto più interessante che guardare semplicemente un testo "Hello World", non credi?
4. Gestione delle modifiche al testo
Quando lavori con il testo, potresti aver bisogno di reagire ai cambiamenti: che si tratti di inviare il testo alla console (o a un file) o aggiornare altre parti dell'interfaccia. Tkinter fornisce vari modi per monitorare le modifiche al testo.
Tuttavia, se desideri fare qualcosa di più specifico, ad esempio cercare del testo o sostituirlo in base a
determinate condizioni, dovrai scrivere le funzioni corrispondenti da solo. Per iniziare puoi utilizzare i
metodi get()
e delete()
per estrarre e modificare il testo in un widget.
Così, ora hai tutti gli strumenti per creare una mini applicazione che non solo mostra informazioni, ma consente all'utente di interagire con esse. Spero che la lezione su etichette e campi di testo sia stata non solo utile, ma anche divertente. La prossima volta che vedrai un campo di testo in un'applicazione, saprai che probabilmente è fatto con Tkinter, e un'etichetta non è solo una scritta, ma una vera filosofia di interazione con l'utente.
GO TO FULL VERSION