在Tcl中,您可以在spinbox命令中使用简单的百分号替换%d
来判断是按下了向上还是向下按钮,如下所示:
spinbox .datespin -width 9 -command {
set way %d
datespin $way %W
}
我仍然试图看看如何在tkinter中使用Spinbox来实现同样的事情,这似乎不像%d
替换(它给我语法错误)。到目前为止我看过的tkinter文档没有帮助。有人能告诉我如何让Spinbox显示向上或向下按钮是否被按下了?
答案 0 :(得分:2)
当我正在研究别的东西时,看到了这个问题。即使这是一个古老的问题,我想如果你还没有在其他地方找到答案,我也可以回答它。
您必须使用通用小部件"注册"方法(即,您可以在任何窗口小部件上调用此方法)将Python函数包装到Tcl包装器中,以便使用百分比替换。 (作为一方,你必须做同样的事情才能在一个Entry小部件中使用validatecommand。)
为了将百分比替换发送到回调,请指定一个元组而不仅仅是可调用元组,并将替换作为元组中的元素(参见下面的示例)。
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()
希望这有帮助!