如何从滚动的文本小部件中获取文本?

时间:2018-01-08 15:26:15

标签: python tkinter textbox

我需要获取tkinter.scrolledtext.ScrolledText中输入的文本框。但是,ScrolledText定义不接受textvariable参数。那我该怎么办?

2 个答案:

答案 0 :(得分:2)

对于小部件来说,

textvariable不是必须来操作文本字符串。下面的示例gettext的内容,然后将其放入lbl' s text

import tkinter as tk
import tkinter.scrolledtext as tkst

def put_text_in_lbl():
    global text, lbl
    fetched_content = text.get('1.0', 'end-1c')
    lbl['text'] = "What's written in text: " + fetched_content

root = tk.Tk()

text = tkst.ScrolledText(root)
lbl = tk.Label(root)
btn = tk.Button(root, text="Display", command=put_text_in_lbl)

# display
text.pack()
lbl.pack()
btn.pack()

root.mainloop()

答案 1 :(得分:0)

使用滚动条时对我有用 编写了一种从滚动文本中获取值的方法 然后更新标签的该值。 这种名为for_display的方法是作为按钮参数中的命令编写的。

    import tkinter as tk
    import tkinter.scrolledtext as scrolledtext
    
    def for_dsplyBtn():
        str=txt.get("1.0",'end')
        display["text"]=str
    
    
    window=tk.Tk()
    intro=tk.Label(text="intro")
    intro.pack()
    txt = scrolledtext.ScrolledText(window, undo=True)
    txt['font'] = ('consolas', '12')
    txt.pack(expand=True, fill='both')
    display=tk.Label(window)
    display.pack()
    btn=tk.Button(window,text="Display", command= lambda : for_dsplyBtn())
    btn.pack()
    tk.mainloop()