Python 3 - Programmazione GUI (Tkinter)

Python fornisce varie opzioni per lo sviluppo di interfacce utente grafiche (GUI). Le caratteristiche più importanti sono elencate di seguito.

  • Tkinter- Tkinter è l'interfaccia Python per il toolkit GUI Tk fornito con Python. Guarderemo questa opzione in questo capitolo.

  • wxPython- Questa è un'interfaccia Python open source per il toolkit GUI wxWidgets. Puoi trovare un tutorial completo su WxPython qui .

  • PyQt−Questa è anche un'interfaccia Python per una popolare libreria GUI Qt multipiattaforma. TutorialsPoint ha un ottimo tutorial su PyQt qui .

  • JPython - JPython è una porta Python per Java, che fornisce agli script Python un accesso senza interruzioni alle librerie di classi Java sulla macchina locale http://www.jython.org.

Sono disponibili molte altre interfacce, che puoi trovare in rete.

Programmazione Tkinter

Tkinter è la libreria GUI standard per Python. Python se combinato con Tkinter fornisce un modo semplice e veloce per creare applicazioni GUI. Tkinter fornisce una potente interfaccia orientata agli oggetti al toolkit della GUI di Tk.

Creare un'applicazione GUI usando Tkinter è un compito facile. Tutto quello che devi fare è eseguire i seguenti passaggi:

  • Importa il modulo Tkinter .

  • Crea la finestra principale dell'applicazione GUI.

  • Aggiungere uno o più dei widget sopra menzionati all'applicazione GUI.

  • Entra nel ciclo di eventi principale per agire contro ogni evento attivato dall'utente.

Esempio

#!/usr/bin/python3

import tkinter # note that module name has changed from Tkinter in Python 2 to tkinter in Python 3
top = tkinter.Tk()
# Code to add widgets will go here...
top.mainloop()

Questo creerebbe una finestra seguente:

Widget di Tkinter

Tkinter fornisce vari controlli, come pulsanti, etichette e caselle di testo utilizzati in un'applicazione GUI. Questi controlli sono comunemente chiamati widget.

Attualmente ci sono 15 tipi di widget in Tkinter. Presentiamo questi widget e una breve descrizione nella tabella seguente:

Sr.No. Operatore e descrizione
1 Pulsante

Il widget Button viene utilizzato per visualizzare i pulsanti nell'applicazione.

2 Tela

Il widget Canvas viene utilizzato per disegnare forme, come linee, ovali, poligoni e rettangoli, nell'applicazione.

3 Pulsante di spunta

Il widget Checkbutton viene utilizzato per visualizzare una serie di opzioni come caselle di controllo. L'utente può selezionare più opzioni alla volta.

4 Iscrizione

Il widget Voce viene utilizzato per visualizzare un campo di testo a riga singola per accettare valori da un utente.

5 Telaio

Il widget Frame viene utilizzato come widget contenitore per organizzare altri widget.

6 Etichetta

Il widget Etichetta viene utilizzato per fornire una didascalia di una riga per altri widget. Può contenere anche immagini.

7 Listbox

Il widget Listbox viene utilizzato per fornire un elenco di opzioni a un utente.

8 Menubutton

Il widget Menubutton viene utilizzato per visualizzare i menu nell'applicazione.

9 Menù

Il widget Menu viene utilizzato per fornire vari comandi a un utente. Questi comandi sono contenuti all'interno di Menubutton.

10 Messaggio

Il widget Messaggio viene utilizzato per visualizzare campi di testo multilinea per accettare valori da un utente.

11 Radiobutton

Il widget Radiobutton viene utilizzato per visualizzare una serie di opzioni come pulsanti radio. L'utente può selezionare solo un'opzione alla volta.

12 Scala

Il widget Scala viene utilizzato per fornire un widget di scorrimento.

13 Barra di scorrimento

Il widget Barra di scorrimento viene utilizzato per aggiungere funzionalità di scorrimento a vari widget, come le caselle di riepilogo.

14 Testo

Il widget Testo viene utilizzato per visualizzare il testo su più righe.

15 Toplevel

Il widget Toplevel viene utilizzato per fornire un contenitore di finestre separato.

16 Spinbox

Il widget Spinbox è una variante del widget standard Tkinter Entry, che può essere utilizzato per selezionare da un numero fisso di valori.

17 PanedWindow

Una PanedWindow è un widget contenitore che può contenere un numero qualsiasi di riquadri, disposti orizzontalmente o verticalmente.

18 LabelFrame

Un labelframe è un semplice widget contenitore. Il suo scopo principale è quello di fungere da spaziatore o contenitore per layout di finestre complessi.

19 tkMessageBox

Questo modulo viene utilizzato per visualizzare le finestre di messaggio nelle applicazioni.

Attributi standard

Vediamo come vengono specificati alcuni dei loro attributi comuni, come dimensioni, colori e caratteri.

Gestione della geometria

Tutti i widget di Tkinter hanno accesso ai metodi di gestione della geometria specifici, che hanno lo scopo di organizzare i widget in tutta l'area del widget genitore. Tkinter espone le seguenti classi di gestione della geometria: pack, grid e place.

  • Il metodo pack () - Questo gestore della geometria organizza i widget in blocchi prima di posizionarli nel widget genitore.

  • Il metodo grid () - Questo gestore della geometria organizza i widget in una struttura simile a una tabella nel widget principale.

  • Il metodo place () - Questo gestore della geometria organizza i widget posizionandoli in una posizione specifica nel widget genitore.