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也行吧,

参考技术A

您好,我想到了这个方法:

# coding : utf-8

from 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 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如何绑定Text内容改变事件?的主要内容,如果未能解决你的问题,请参考以下文章

Python——tkinter操作

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

如何从Tkinter,Python中的Text小部件中移除焦点

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

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

如何将回车键绑定到 tkinter 中的函数?