如何获取 Tkinter 文本框中的输入

Jinku Hu 2024年2月15日
  1. 从 Tkinter 文本控件获取输入的示例代码
  2. 从 Tkinter 文本控件最后获取不带\n 的输入的示例代码
如何获取 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"

Tkinter 获取文本框 Input_Inculde 新行

从上面的动画中可以看出,如果我们将 "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()

Tkinter 获取文本框 Input_Not Inculde 新行

在这里,我们还可以在"end-1c"之外使用 tk.END+"-1c"来删除最后一个字符-\n,因为 tk.END = "end",所以 tk.END+"-1c"等于"end"+"-1c"="end-1c"

作者: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

DelftStack.com 创始人。Jinku 在机器人和汽车行业工作了8多年。他在自动测试、远程测试及从耐久性测试中创建报告时磨练了自己的编程技能。他拥有电气/电子工程背景,但他也扩展了自己的兴趣到嵌入式电子、嵌入式编程以及前端和后端编程。

LinkedIn Facebook

相关文章 - Tkinter Text