Spinbox get()方法问题

时间:2015-09-03 09:22:24

标签: python-3.x tkinter

我正在制作一个涉及SpinBox小部件的应用程序。我的问题是每当我点击小部件后使用get()方法获取值。我改为在点击之前获取该值。 这是我正在做的一个例子:

import tkinter as tk

class Example(object):
    def __init__(self, master):
        master.geometry('150x150')

        self._box = tk.Spinbox(master, from_ = 0, to = 100)
        self._box.pack(expand = True)
        self._box.bind('<ButtonRelease>', self.func)

    def func(self, event):
        print(int(self._box.get()))

root = tk.Tk()
app = Example(root)
root.mainloop()

正在打印的是

0 #1st click up | spinbox displays 1
1 #2nd click up | spinbox displays 2
2 #3rd click up | spinbox displays 3
# etc

任何帮助解决这个问题都将受到赞赏

1 个答案:

答案 0 :(得分:1)

不是进行绑定,而是设置command属性。在值发生变化后,将始终调用此方法。

self._box = tk.Spinbox(..., command=self.func)
...
def func(self):
    ...