Wie man die Eingabe aus dem Tkinter-Textfeld erhält

  1. Beispielcode zum Abrufen der Eingabe von Tkinter Text-Widget
  2. Beispielcode zum Holen der Eingabe ohne Newline am Ende von Tkinter Text Widget

Tkinter Text-Widget hat die Methode get(), um die Eingabe aus dem Textfeld zurückzugeben, die das Argument start Position und ein optionales end Argument hat, um die Endposition des zu lesenden Textes zu spezifizieren.

get(start, end=None)

Wenn end nicht angegeben wird, wird nur ein an der start-Position angegebenes Zeichen zurückgegeben.

Beispielcode zum Abrufen der Eingabe von Tkinter Text-Widget

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

Die Position des ersten Zeichens im Text Widget ist 1.0 und könnte als Zahl 1.0 oder als Zeichenkette "1.0" bezeichnet werden.

"end" bedeutet, dass die Eingabe bis zum Ende des Text-Feldes gelesen wird. Wir könnten hier auch tk.END anstelle der Zeichenkette "end" verwenden.

Tkinter get Textbox Input_Inculde neue Zeile

Das winzige Problem, wenn wir "end" als Endposition des zurückzugebenden Textes angeben, beinhaltet auch das Zeilenumbruchszeichen \n am Ende des Textstrings, wie Sie in der obigen Animation sehen konnten.

Wir könnten das "end" Argument der get Methode so ändern, dass es das "end1c" ist, wenn wir den Zeilenumbruch in der zurückgegebenen Eingabe nicht wollen.

"end1c" bedeutet, dass die Position ein Zeichen vor dem "end" steht.

Beispielcode zum Holen der Eingabe ohne Newline am Ende von Tkinter Text Widget

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 erhält Textfeld Input_Not Inculde neue Zeile

Hier könnten wir auch tk.END+"-1c" neben "end-1c" verwenden, um das letzte Zeichen - \n - zu eliminieren, denn tk.END = "end", also ist tk.END+"-1c" gleich "end "+"-1c"="end-1c".

Verwandter Artikel - Tkinter Text

  • Wie man den Text von Tkinter Text-Widget mit einer Schaltfläche einstellt
  • Wie man das Tkinter Text-Widget schreibgeschützt macht