代码之家  ›  专栏  ›  技术社区  ›  Sun Bear

如何通过键盘输入将值注册到ttk.Spinbox?

  •  0
  • Sun Bear  · 技术社区  · 7 年前

    可以吗 ttk.Spinbox 小部件允许用户在其输入字段中键入值并注册?如果是,我怎么做?

    .set() ttk.Spinbox上的方法 textvariable 改变它的价值。但这不是我想的。相反,我只想让用户点击 ttk.Entry 的小部件 旋转箱 然后在那里手动输入值并将其注册到 text变量 . 目前,我可以在那里输入值,但按下 Return 钥匙。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Bryan Oakley    7 年前

    一个ttk.Spinbox小部件能允许用户在它的输入字段中输入值并注册它吗?如果是,我怎么做?

    如果将变量与 textvariable

    您可以通过创建一个spinbox和一个标签来验证这一点,两者都与同一个变量相关联。然后,您可以在编辑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> 键,则必须添加绑定才能调用函数。

    例子:

    def do_something(event):
        print("do something:", spinvar.get())
    spinbox.bind("<Return>", do_something)