Ottieni l'input dalla casella di testo Tkinter

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

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".

Articolo correlato - Tkinter Text

  • Elimina i contenuti della casella di testo Tkinter