Я столкнулся с той же проблемой, и для меня не работали ни запрещение обратного вызова, ни установка глобальной переменной для проверки состояния обратного вызова, по какой-то неясной причине, что обратный вызов продолжал вызываться после того, как мой код завершил работу.
Несмотря на это, решение, которое сработало для меня, простое: я использовал переменную в виджете и установил значение, используя метод переменной set
, а не метод виджета.
value = DoubleVar()
scale = Scale(master, variable=value, command=callback)
scale.pack()
scale.set(0) #<- this triggered the callback, no matter what I tried to stop it
value.set(0) #<- this seems to work like the previous line but without any callback