HOWTO · Tkinter

Ottieni l'input dalla casella di testo Tkinter

get metodo del widget Tkinter Text Box ottiene l'input da esso e l'argomento inizio e fine specifica le posizioni di inizio e fine del testo da leggere.

In questa pagina

Il widget Tkinter Text ha il metodo get() per restituire l’input dalla casella di testo, che ha l’argomento della posizione start e un argomento end opzionale per specificare la posizione finale del testo da caricare.

get(start, end=None)

Se end non viene fornito, verrà restituito solo un carattere specificato nella posizione start.

Codice di esempio per ottenere l’input dal widget di testo Tkinter

import tkinter as tk

root = tk.Tk()
root.geometry("400x240")


def getTextInput():
    result = textExample.get("1.0", "end")
    print(result)


textExample = tk.Text(root, height=10)
textExample.pack()
btnRead = tk.Button(root, height=1, width=10, text="Read", command=getTextInput)

btnRead.pack()

root.mainloop()
result = textExample.get("1.0", "end")

La posizione del primo carattere nel widget Text è 1.0 e potrebbe essere indicato come un numero 1.0 o una stringa 1.0.

"end" significa che legge l’input fino alla fine della casella Text. Potremmo anche usare tk.END invece della stringa "end" qui.

Tkinter ottiene la nuova riga della casella di testo Input_Inculde

Il piccolo problema se specifichiamo "end" come posizione finale del testo da restituire, include anche il carattere di nuova riga \n alla fine della stringa di testo, come puoi vedere dall’animazione sopra.

Potremmo cambiare l’argomento "end" del metodo get in "end-1c" se non vogliamo la nuova riga nell’input restituito.

"end-1c" significa che la posizione è un carattere prima di "end".

Codice di esempio per recuperare l’input senza newline alla fine dal widget di testo Tkinter

import tkinter as tk

root = tk.Tk()
root.geometry("400x240")


def getTextInput():
    result = textExample.get(1.0, tk.END + "-1c")
    print(result)


textExample = tk.Text(root, height=10)
textExample.pack()
btnRead = tk.Button(root, height=1, width=10, text="Read", command=getTextInput)

btnRead.pack()

root.mainloop()

Tkinter ottiene la casella di testo Input_Not Inculde nuova riga

Qui, potremmo anche usare tk.END+"-1c" oltre a "end-1c" per eliminare l’ultimo carattere - \n, perché tk.END = "end", quindi tk.END+"-1c" è uguale a "end"+"-1c"="end-1c".