Привет! Я создаю форму ввода пользователя, в которой есть несколько виджетов ввода (около 20), в которых 4 виджета ввода связаны с вводом даты
Для этих виджетов ввода даты, когда пользователь пытается ввести Input_Date в формат ГГГГ / ММ / ДД , например, когда пользователь вводит ГОД , следующий символ должен быть автоматически '/' , затем МЕСЯЦ с последующим '/' и ДАТА
Вот код, который я пытаюсь исправить, однако его ошибка метания, запросите ваше руководство
from tkinter import *
def date_val(val):
def callback(val):
text=val.get()
if len(text) in (4,7):
val.insert(END,'/')
val.icursor(len(text)+1)
elif len(text) not in (5,8):
if not text[-1].isdigit():
val.delete(0,END)
val.insert(0,text[:-1])
if len(text) > 10:
val.delete(0,END)
val.insert(0,text[:10])
val.trace("w", lambda name, index, mode, val=val: callback(val))
if __name__ == "__main__":
root = Tk()
td = StringVar()
td_1 = StringVar()
td_2 = StringVar()
td_3 = StringVar()
td_4 = StringVar()
T_Date_field = Entry(root, textvariable=td)
date_val(td)
T_Date_field_1 = Entry(root, textvariable=td_1)
date_val(td_1)
T_Date_field_2 = Entry(root, textvariable=td_2)
date_val(td_2)
T_Date_field_3 = Entry(root, textvariable=td_3)
date_val(td_3)
T_Date_field_4 = Entry(root, textvariable=td_4)
date_val(td_4)
T_Date_field.grid(row=2, column=1, padx=5, pady=5)
T_Date_field_1.grid(row=3, column=1, padx=5, pady=5)
T_Date_field_2.grid(row=4, column=1, padx=5, pady=5)
T_Date_field_3.grid(row=5, column=1, padx=5, pady=5)
T_Date_field_4.grid(row=6, column=1, padx=5, pady=5)
root.mainloop()
введите описание изображения здесь