ttk :: spinbox似乎有问题。我在Windows 7上使用Python 3.5.2,Tk 8.6。
from tkinter import *
from tkinter.ttk import *
from tkinter.messagebox import showinfo
class Spinbox(Widget):
def __init__(self, master, **kw):
super().__init__(master, 'ttk::spinbox', kw)
def cb1():
print('--> cb1()')
def cb2():
showinfo('cb2', '--> cb2()')
root = Tk()
spin1 = Spinbox(root, from_ = 0, to = 10, command = cb1).pack()
spin2 = Spinbox(root, from_ = 0, to = 10, command = cb2).pack()
root.mainloop()
当我单击spin2旋转框上的向上或向下箭头时,它会按预期弹出消息框对话框,但是在单击“确定”后,向上/向下箭头似乎反复触发并保持/减小值,从而导致消息框一遍又一遍地显示对话框。退出的唯一方法似乎是杀死进程(结束任务)。 spin1不会发生这种无限循环行为,它只是在单击箭头时将消息输出到控制台。如果使用经典的Tk旋转箱,也不会发生这种情况。
这可能不是很多真实用例,但我在使用showinfo进行调试时发现了它。难道我做错了什么?有解决方法/修复吗?