Wie man die Eingabe aus dem Tkinter-Textfeld erhält
- Beispielcode zum Abrufen der Eingabe von Tkinter Text-Widget
-
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.
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 "end-1c"
ist, wenn wir den Zeilenumbruch in der zurückgegebenen Eingabe nicht wollen.
"end-1c"
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()
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"
.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook