Может ли виджет ttk.Spinbox позволить пользователю вводить значения в поле ввода и регистрировать его?Если так, как я могу это сделать?
Если вы связываете переменную с атрибутом textvariable
, вам больше ничего не нужно делать.Каждый раз, когда пользователь изменяет значение с помощью стрелок или путем ввода в редактируемую часть виджета, значение в переменной будет мгновенно обновляться.
Вы можете проверить это самостоятельно, создав спин-бокс и меткуоба связаны с одной и той же переменной.После этого вы сможете увидеть, что ярлык обновляется в реальном времени при редактировании spinbox.
Пример:
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
spinvar = tk.IntVar()
spinbox = ttk.Spinbox(root, from_=0, to=100, textvariable=spinvar)
label = ttk.Label(root, textvariable=spinvar)
spinbox.pack()
label.pack()
root.mainloop()
В настоящее время я могу вводить значения там, но ничего не происходит, когда янажмите клавишу Return.
Если вы хотите, чтобы что-то происходило, когда пользователь нажимает клавишу <Return>
, вам нужно добавить привязку для вызова функции.
Пример:
def do_something(event):
print("do something:", spinvar.get())
spinbox.bind("<Return>", do_something)