Python Tkinter如何绑定Text内容改变事件?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python Tkinter如何绑定Text内容改变事件?相关的知识,希望对你有一定的参考价值。
绑定一个处理函数到这个事件,当Text的内容发生变化时,执行处理函数。百度知道上的另一个回答不是回复的Python Tkinter的内容,请不要复制答案
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()
效果如下:
追问不是回车,而是输入就会有变化,就像现在的百度知道回答,在输入的同时就会有总字数提醒。
另外问的是Text控件不是Entry,但是如果Text不能实现那Entry也行吧,
您好,我想到了这个方法:
# coding : utf-8from tkinter import *
root = Tk()
last_text = ''
def text_change(event):
global last_text
got = text.get('1.0', 'end')
if got != last_text:
last_text = got
print('文本被修改了')
text = Text(root)
text.bind('<Key>', text_change)
text.grid()
root.mainloop()
不过还是有些问题,有时候会重复调用,比如输入一串中文时
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 pythontkinter使用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如何绑定Text内容改变事件?的主要内容,如果未能解决你的问题,请参考以下文章
python 用Tkinter.Text设置了文本框之后如何获取输入内容
如何从Tkinter,Python中的Text小部件中移除焦点