Какие аргументы передаются зарегистрированному методу обратного вызова класса Tkinter Variable? [dубликат]

Python имеет классы для переменных Tkinter StringVar(), BooleanVar() и т. д. Все они используют методы get(), set(string) и trace(mode, callback). Функция callback, переданная как второй аргумент в trace(mode, callback), передается четыре аргумента, self, n, m, x.

Для примера BooleanVar() они выглядят как '', 'PYVAR0', 'w'.

Третий аргумент x представляется режимом, который вызвал трассировку, в моем случае переменная была изменена. Однако какова первая переменная, представляющая собой пустую строку? Что второе, если я должен был предположить, что я бы сказал, какое-то внутреннее имя переменной?

12
задан 17 April 2015 в 07:40

1 ответ

Первый аргумент - это имя переменной, но не «бесполезно», поскольку вы можете установить его, когда вы объявляете переменную, например:

someVar = IntVar(name="Name of someVar")

Когда вы проверяете первый аргумент в trace callback будет равен «Name of someVar». Используя имя для различения переменных, вы можете привязать один и тот же обработчик для отслеживания изменений к любому числу переменных, а не для отдельного обработчика для каждой переменной.

2
ответ дан 15 August 2018 в 16:51

Другие вопросы по тегам:

Похожие вопросы: