Как обнаружить изменение значения tkinter.spinbox?

Пользователь

от rodger.botsford , в категории: Python , месяц назад

Как обнаружить изменение значения tkinter.spinbox?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от alisa.bahringer , месяц назад

@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.