【发布时间】:2016-02-08 21:55:02
【问题描述】:
vcmd = (self.register(self.validate_entry_len), '%P', '%W')
ip_entry = tk.Entry(ip_frame, width=15, validate='key', vcmd=vcmd)
port_entry = tk.Entry(port_frame, width=5, validate='key', vcmd=vcmd)
def validate_entry_len(self, P, W):
entry = self.master.nametowidget(W)
if len(P) <= !!!width of entry!!!:
return True
self.bell()
return False
所以我试图验证条目中的文本是否超过最大长度。我有两个长度不同的条目小部件。我想为每个使用不同长度的相同验证函数,这样当唯一的区别是最大长度时,我不需要创建两个验证函数。因此,我正在尝试使用小部件的宽度。但是,我找不到获取宽度的方法。
【问题讨论】:
-
!!!width of entry!!!是指len(entry.get())? -
就是宽度内容的长度。我想要我在输入“width=15”时设置的值
-
哦,小部件本身的宽度?那么
entry['width']? -
哦,是的!谢谢。请将其发布为答案,以便我可以将其作为答案。
-
看起来
entry['width']有时会起作用,但如果宽度发生变化,则会给出错误的值。改用链接问题/答案中的方法;它更强大。
标签: python validation tkinter width tkinter-entry