tkinter
Il Tkinter Entry Widget
Ricerca…
Sintassi
- entry = tk.Entry ( parent , ** kwargs )
- entry.get ()
- entry.insert (index, "valore")
- entry.delete (start_index, end_index)
- entry.bind (evento, callback)
Parametri
Parametro | Descrizione |
---|---|
genitore | i widget tkinter esistono in una struttura gerarchica. Ad eccezione della finestra radice, tutti i widget hanno un genitore. Alcuni tutorial online chiamano questo "master". Quando il widget viene aggiunto allo schermo con pack , place o grid , apparirà all'interno di questo widget genitore |
larghezza | La larghezza specifica la larghezza desiderata del widget in base alla larghezza media di un carattere. Per i caratteri a larghezza variabile, questo è basato sulla larghezza del carattere zero ( 0 ). Il valore predefinito è 20. Si noti che la larghezza effettiva potrebbe essere maggiore o minore a seconda di come viene aggiunta allo schermo. |
Osservazioni
Questi esempi presuppongono che tkinter sia stato importato con import tkinter as tk
(python 3) o import Tkinter as tk
(python 2).
Creazione di un widget di voce e impostazione di un valore predefinito
entry = tk.Entry(parent, width=10)
entry.insert(0, "Hello, World!")
Ottenere il valore di un widget Entry
Il valore di un widget voce può essere ottenuto con il metodo get
del widget:
name_entry = tk.Entry(parent)
...
name = name_entry.get()
Facoltativamente, è possibile associare un'istanza di StringVar
e recuperare il valore dallo StringVar
anziché dal widget:
name_var = tk.StringVar()
name_entry = tk.Entry(parent, textvariable=name_var)
...
name = name_var.get()
Aggiunta di convalida a un widget di voce
Per limitare i caratteri che possono essere digitati in un widget di voci, solo i numeri, ad esempio, un comando di convalida può essere aggiunto alla voce. Un comando di convalida è una funzione che restituisce True
se la modifica è accettata, False
altrimenti. Questa funzione sarà chiamata ogni volta che il contenuto della voce viene modificato. Vari argomenti possono essere passati a questa funzione, come il tipo di modifica (inserimento, cancellazione), il testo inserito, ...
def only_numbers(char):
return char.isdigit()
validation = parent.register(only_numbers)
entry = Entry(parent, validate="key", validatecommand=(validation, '%S'))
L'opzione di validate
determina il tipo di evento che attiva la convalida, in questo caso è presente un qualsiasi tasto nella voce. Il '%S'
nell'opzione validatecommand significa che il carattere inserito o eliminato viene passato in argomento alla funzione only_numbers
. L'elenco completo delle possibilità può essere trovato qui .
Getting int From Entry Widget
Quando si usa il metodo .get (), qualunque cosa sia nel widget di voce verrà convertito in una stringa. Ad esempio, indipendentemente dal tipo di input (può essere un numero o una frase), il risultato risultante sarà una stringa. Se l'utente digita 4 l'output sarà "4" come in una stringa. Per ottenere un int da un Entry Widget, prima chiama il metodo .get ().
What_User_Wrote = Entry.get()
Ora convertiamo quella stringa in un int come:
Convert_To_Int = int(What_User_Wrote)
Allo stesso modo, se vuoi risparmiare tempo puoi semplicemente fare:
Convert_To_Int = int(Entry.get())
È possibile utilizzare il metodo precedente se non si desidera convertire str in int.