2016-04-26 91 views
1

在Tcl中,您可以在spinbox命令中使用简单的百分比替换%d来判断向上或向下按钮是否已被按下,如下所示:tkinter:如何让Spinbox显示是向上还是向下按钮已被按下

spinbox .datespin -width 9 -command { 
    set way %d 
    datespin $way %W 
} 

我还是想看看如何得到同样的事情用一个SPINBOX在Tkinter的,这似乎并不喜欢%d替代发生(它给我的语法错误)。迄今为止我看到的tkinter文档没有帮助。有人可以告诉我如何让Spinbox揭示向上或向下按钮是否被推动?

回答

1

看到这个问题,因为我正在研究别的东西。尽管这是一个古老的问题,但我还是认为如果你还没有在其他地方找到答案,我也可以回答它。

您必须使用通用小部件“注册”方法(即,您可以在任何小部件上调用此方法)将Python函数封装到Tcl包装器中,以便使用百分比替换。 (作为一方,您必须执行相同的操作才能在Entry窗口小部件中获得validate命令。)

为了向您的回调函数发送百分比替换,请指定一个元组而不仅仅是可调用元素你的替换元素作为元组(参见下面的例子)。

import tkinter as tk 

root = tk.Tk() 

def up_or_down(direction): 
    print(direction) 

tcl_up_or_down = root.register(up_or_down) 

spinbox = tk.Spinbox(root, from_=0, to=10, command=(tcl_up_or_down, '%d')) 
spinbox.grid() 

root.mainloop() 

希望这有助于!

相关问题