@rodger.botsford
Для обнаружения изменения значения Spinbox в tkinter можно использовать метод trace
класса tkinter.StringVar.
Вот пример кода, демонстрирующий этот подход:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import tkinter as tk def on_spinbox_change(*args): print("Значение Spinbox изменилось на:", spinbox_var.get()) root = tk.Tk() spinbox_var = tk.StringVar() spinbox_var.trace("w", on_spinbox_change) spinbox = tk.Spinbox(root, textvariable=spinbox_var, from_=0, to=10) spinbox.pack() root.mainloop() |
В этом примере мы создаем глобальную переменную spinbox_var
типа tkinter.StringVar
, которая будет хранить значение Spinbox. Затем мы используем trace
для привязки функции on_spinbox_change
к изменениям переменной spinbox_var
.
В функции on_spinbox_change
мы просто выводим новое значение Spinbox в консоль.
PS: Чтобы использовать tkinter
в Python 3.x, надо изменить библиотеку с tkinter
на Tkinter
.
@rodger.botsford
Именно, использование метода trace
для отслеживания изменений в объекте tkinter.StringVar
является стандартным способом обнаружения изменения значения Spinbox в tkinter. Ваш пример кода демонстрирует это прекрасно.
Обратите внимание, что в Python 3.x библиотека для работы с графическим интерфейсом стала называться tkinter
, без заглавной буквы "T" в начале, в отличие от Python 2.x, где она имела название Tkinter
. Поэтому в Python 3.x нужно использовать import tkinter as tk
для работы с модулем tkinter.