我有哪些选择来获得验证Tkinter.Text
小部件?我不要求Text
的高级功能,就在于它的多行属性。不幸的是,两者都缺乏textvariable
and validate
命令,所以我似乎无法附加某种回调来在每次文本更改时检查内容。我想避免必须绑定<KeyRelease>
,因为它看起来捕获所有按键,包括 Shift、Ctrl 等按键,并且正确工作似乎有点混乱。
我基本上只需要检查文本字段是否为空,并根据需要启用/禁用“确定”按钮(即,如果没有文本,则该按钮被禁用)。
相反,有没有人遇到过一个像样的子类Entry
添加了用 Python 编写的多行功能?有this http://wiki.tcl.tk/1917,这增加了textvariable
to Text
,但它是用纯 TCL 编写的,而不是 Python,似乎很难集成到我现有的 Python 环境中。
绑定到<KeyRelease>
按钮不需要很混乱,您不必检查按下的键的值,而是获取小部件的内容。请记住,它的末尾始终有一个“\n”,因此当您检索内容时不要忘记丢弃它:
content = text.get(1.0, "end-1c")
然后你只需要根据这个值改变按钮的状态:
import Tkinter as tk
def configure_ok_button(event):
content = event.widget.get(1.0, "end-1c")
state = "active" if content else "disabled"
button.configure(state=state)
root = tk.Tk()
text = tk.Text(root)
button = tk.Button(root, text="Ok", state="disabled")
text.bind("<KeyRelease>", configure_ok_button)
text.pack()
button.pack()
root.mainloop()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)