如何获取 tkinter 文本对象的内容

How to get the content of a tkinter Text object

我正在尝试使用 tkinter.TextPython 中创建文本区域。这样,我想获得他们放入该文本区域的所有输入,并将其显示在其上方的 Entry 字段中。它给出了一个错误,说它需要两个参数。

from Tkinter import *

def create_index():
        var = body.get(0)
        link.insert(10,var)
        file.close()

master = Tk()
Label(master, text="Link:").grid(row=0)
Label(master, text="Body:").grid(row=1)

link = Entry(master)
body = Text(master)

link.grid(row=0, column=1)
body.grid(row=1, column=1)
Button(master, text='Show', command=create_index).grid(row=3, column=1, sticky=W, pady=4)

mainloop()

要从 tkinter.Text 获取所有输入,您应该使用 tkinter.Text 对象中的方法 get 来表示文本区域。在你的例子中,body 应该是 tkinter.Text 类型的变量,所以这里有一个例子:

text = body.get("1.0", "end-1c")  

tkinter.Text 个对象将其内容计为行和列。 "1.0" 表示:您想要从第 1 行和第 0 个字符开始获取内容(这是 tkinter.Text 对象的默认起点)。

这是一个完整的工作示例,基本上是在单击按钮时调用方法 get_text 并将 body 的内容添加到我调用的 tkinter.Entry 对象entry(通过使用 tkinter.StringVar 类型的变量。有关详细信息,请参阅文档):

import tkinter

def get_text():
    content = body.get(1.0, "end-1c")
    entry_content.set(content)

master = tkinter.Tk()

body = tkinter.Text(master)
body.pack()

entry_content = tkinter.StringVar()
entry = tkinter.Entry(master, textvariable=entry_content)
entry.pack()

button = tkinter.Button(master, text="Get tkinter.Text content", command=get_text)
button.pack()

master.mainloop()

关于另一个很好的例子,请参阅其他 post 和下面的第一条评论。