如何获取 Tkinter 文本框中的输入
Tkinter Text
文本框控件具有 get()
方法以从文本框中返回输入,该文本框具有 start
位置参数和可选的 end
参数来指定要获取的文本的结束位置。
get(start, end=None)
如果未指定 end
,则仅返回在 start
位置指定的一个字符。
从 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")
Tkinter 文本框控件中第一个字符的位置是 1.0
,可以用数字 1.0
或字符串"1.0"
来表示。
"end"
表示它将读取直到文本框的结尾的输入。我们也可以在这里使用 tk.END
代替字符串"end"
。
从上面的动画中可以看出,如果我们将 "end"
指定为要返回的文本的结束位置,则会出现一个小问题,它在文本字符串的末尾还包含换行符\n
。
如果我们不希望在返回的输入中包含换行符,可以将 get
方法的"end"
参数更改为"end-1c"
。
"end-1c"
表示位置是在"end"
之前的一个字符。
从 Tkinter 文本控件最后获取不带\n
的输入的示例代码
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()
在这里,我们还可以在"end-1c"
之外使用 tk.END+"-1c"
来删除最后一个字符-\n
,因为 tk.END = "end"
,所以 tk.END+"-1c"
等于"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