2015-11-07 65 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