2015-11-07 40 views
-1
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 

所以我想验证条目中的文本是否超过最大长度。我有两个不同长度的输入小部件。我想为每个使用不同长度的相同验证函数,因此当唯一的区别是最大长度时,我不需要进行两个验证函数。因此,我试图使用小部件的宽度。但是,我找不到获取宽度的方法。Python的Tkinter条目如何获取条目的宽度

+0

按'!!!宽度入口!!!'你的意思是'len(entry.get())'? – TigerhawkT3

+0

这是宽度内容的长度。我希望我在创建条目时设置的值'width = 15' – whiteSkar

+1

哦,部件本身的宽度?所以'入口['宽度']'? – TigerhawkT3

回答

1

您可以使用entry['width']访问Entry小部件的字符宽度。请记住,如果小部件被修改,这可能无法可靠地更新。

+0

非常感谢! – whiteSkar