2015-11-07 19 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 Entry Как получить ширину записи

+0

By '!!! width of entry !!!' Вы имеете в виду 'len (entry.get())'? – TigerhawkT3

+0

Это длина содержимого ширины. Я хочу, чтобы значение, которое я установил, когда я делал запись «width = 15» – whiteSkar

+1

О, ширина самого виджета? Итак, 'entry ['width']'? – TigerhawkT3

ответ

1

Вы можете получить доступ к ширине символа виджета Entry с помощью entry['width']. Имейте в виду, что это может не быть надежно обновлено, если виджет будет изменен.

+0

Большое спасибо! – whiteSkar