Tkinter 如何绑定Text内容改变事件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tkinter 如何绑定Text内容改变事件?相关的知识,希望对你有一定的参考价值。

绑定一个处理函数到这个事件,当Text的内容发生变化时,执行处理函数。

python tkinter使用Entry做为文本框输入,通过textvariable绑定数据给文本框,然后中使用get函数获取内容。如果想要Enter获取内容,则需要绑定<Return>事件,代码如下:

from tkinter import *
def rtnkey(event=None):
print(e.get())
root = Tk()
e = StringVar()
entry = Entry(root, validate='key', textvariable=e, width=50)
entry.pack()
entry.bind('<Return>', rtnkey)
root.title('测试回车获取文本框内容')
root.mainloop()

效果如下:

参考技术A python
tkinter使用entry做为文本框输入,通过textvariable绑定数据给文本框,然后中使用get函数获取内容。如果想要enter获取内容,则需要绑定
事件,代码如下:
from tkinter import *
def rtnkey(event=none):
print(e.get())
root = tk()
e = stringvar()
entry = entry(root, validate='key', textvariable=e, width=50)
entry.pack()
entry.bind('
', rtnkey)
root.title('测试回车获取文本框内容')
root.mainloop()
效果如下:
参考技术B def f(event):
...

t=Text(root)
t.bind('<Any>',f)
#Any事件表示任意键被按下,间接代表Text内容改变了

用python的Tkinter中的按钮,绑定的事件如何更改全局变量的问题

有这样一个程序,点按钮后,可以改变a的值,a为StringVar(),如何在主函数中获得a改变后的值
from Tkinter import *
def changeStringvar():
a.set("Changed!")
root=Tk()
a=StringVar()
button=Button(root,text='Change'command=changeStingvar)
label=Label(root,textvariable=a)
button.pack()
label.pack()
print a.get() #这个地方肯定不是这么写,但是如何打印出a的值?label中可以显示在 #changeStringvar中给a赋予的值,但是怎么在主函数中也能获得a的值?
mainloop()

from Tkinter import *
def changeStringvar():
a.set("Changed!")
print(a.get()) ## 在这print a.get()就能打印在控制台里面了

root=Tk()
a=StringVar()
button=Button(root,text='Change',command=changeStringvar)
label=Label(root,textvariable=a)
button.pack()
label.pack()
print(a.get()) ## 这个时候打印出来的还没变化呢
mainloop()
参考技术A 我觉得可以设置一个全局变量,保存a值,changeStringvar中从新设置下就可以了吧

以上是关于Tkinter 如何绑定Text内容改变事件?的主要内容,如果未能解决你的问题,请参考以下文章

用python的Tkinter中的按钮,绑定的事件如何更改全局变量的问题

2 TKinter绑定事件

tkinter的tk.Listbox里,我给它绑定了一个点击事件,但第一次点击出错,后几次就好了

python 用Tkinter.Text设置了文本框之后如何获取输入内容

如何给 Python Tkinter 给窗口加标题、改变 button 文本?

tkinter的text如何获取和设置内容