Я пытаюсь использовать trace для управления пользовательскими значениями, которые вводятся в виджет Entry. У меня есть список размером 23. У меня есть другие списки, на которых я успешно использую трассировку, но они немного меньше (размер 4).
def limit_10(*args):
for i in skills:
val = i.get()
if not val.isnumeric():
val = ''.join(filter(str.isnumeric, val))
i.set(val)
elif val.isnumeric():
if int(val) > 10:
i.set(10)
else:
i.set(val)
Здесь я объявляю свой список:
for _ in SKILLS:
i = StringVar()
i.trace('w', limit_10)
skills.append(i)
Когда я запускаю программу с установленной трассировкой, происходит следующее: программа не запускается.
Однако, если я перестану отслеживать свой список размером 23, все будет работать нормально. Я уверен, что моя проблема связана с плохой реализацией - для l oop в функции обратного вызова. Тем не менее, я не могу найти лучшего решения для извлечения значения из списка ...
Любая помощь очень ценится!