Как мне получить значение из spinbox в ttk?

#python #ttk

#python #ttk

Вопрос:

Теперь у меня есть рабочий spinbox, но я не могу узнать, как получить значение spinbox. При поиске в Интернете я не смог заставить примеры работать, может кто-нибудь помочь?

Это то, что у меня сейчас есть.

 spinbox = StringVar()
s = ttk.Spinbox(root, from_=1.0, to=100.0, textvariable=spinbox).grid(column=4, row=1, sticky=W)
ttk.Label(root, text="amount:").grid(column=3, row=1, sticky=W)
 

Достаточно просто напечатать число в консоли.

Спасибо,

Ответ №1:

Проблема в том, что SpinBox.grid() ничего не возвращает, т.Е. Возвращает None .

Итак, сделайте это так:

 s = ttk.Spinbox(root, from_=1.0, to=100.0, textvariable=spinbox)
s.grid(column=4, row=1, sticky=W)
print(s.get())
 

Редактировать-
Добавьте функцию для получения значения и добавьте эту функцию в параметр command

 def get_spinbox_val():
    global s
    print(s.get())

s = ttk.Spinbox(root, from_=1.0, to=100.0, textvariable=spinbox, command=get_spinbox_val)
s.grid(column=4, row=1, sticky=W)
 

Комментарии:

1. Как я должен использовать s.get() ? Когда я пытаюсь его использовать, я получаю эту ошибку 'NoneType' object has no attribute 'get' .

2. Похоже, он по-прежнему не работает, теперь у меня все еще есть spinbox, но с используемым числом ничего не происходит…

3. Какое значение вы получаете? Не могли бы вы вставить несколько скриншотов того же самого?

4. Сальва, если это для меня, то вот мой ответ. Я нигде не получаю никаких чисел обратно, число появляется на моем экране в spinbox, но оно не отправляет его никуда в консоль или что-то еще…

5. Все работает правильно 🙂 большое спасибо. должен ли я теперь одобрить вопрос или нет? Я новичок, я не уверен