Проблема с текстом изменения в tk.Запись при проверкеPython

Программы на Python
Ответить
Anonymous
 Проблема с текстом изменения в tk.Запись при проверке

Сообщение Anonymous »

Я хочу создать поле ввода для даты. Я хочу, чтобы пользователь мог вводить цифры месяца, дня, года и автоматически отображать символ «/». Я думал, что смогу сделать это с помощью проверки, и вот мой код:

Код: Выделить всё

def __init__(self, *args, **kwargs)
super().__init__(*args,**kwargs)
self.grid_propagate(False)

reg = self.register(self.validate_date)
tk.Entry(self,name='the_entry', validate="key", validatecommand=(reg, '%P')).grid(row=0, column=1,sticky='E')

def validate_date(self,input):

if input=='':
return True

if not input[-1].isdigit():
return False

if len(input)==10:
return False

if len(input) in [2,5]:

self.nametowidget('the_entry').delete(0,tk.END)
self.nametowidget('the_entry').insert(0,input + '/')

return True
Но происходит следующее: я получаю один '/', и после этого он перестает вызывать функцию проверки. Я попытался переназначить функцию проверки с помощью следующего кода в операторе if:

Код: Выделить всё

        self.nametowidget('the_entry').config(validate="key")
self.nametowidget('the_entry').config(validatecommand=
(self.register(self.validate_date), '%P'))
Когда я это делаю, символ '/' больше не добавляется.
Может ли кто-нибудь порекомендовать лучший способ добиться того поведения, которое я ищу? для?

Подробнее здесь: https://stackoverflow.com/questions/792 ... validation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»