【发布时间】:2014-05-08 14:17:03
【问题描述】:
我正在开发一个程序来控制一台只连接一个键盘的机器。我正在使用Python 2.7 和Tkinter 8.5。我正在使用OptionMenus 允许用户在机器上进行设置。
当我在 Windows 下运行时,我可以使用键盘上的箭头键遍历下拉列表,然后使用键盘输入来选择选项。这不适用于 Linux (Debian Wheezy)。
如何将KP_Enter 绑定为返回键?
import Tkinter
def c(self, event):
event.b[".keysym"] = "<<space>>"
print "button invoked"
t = Tkinter.Tk()
b = Tkinter.OptionMenu(t, ".500", ".510", ".520",
".550", ".560", ".570", ".580", command=c)
t.bind("<KP_Enter>", c)
e = Tkinter.Entry()
e.pack()
b.pack(anchor=Tkinter.E)
t.mainloop()
【问题讨论】:
-
您是否尝试过创建与
<KP_Enter>的绑定?您的代码仅显示<Return>上的绑定。 -
我发布了错误的代码,但它不适用于 KP_Enter。我一直在研究并使用以下方法来绑定 KP_up 和 KP_down 箭头 def focus_next_button(event): event.widget.tk_focusNext().focus() return("break") master.bind("
", focus_next_button) def focus_prev_button(event): event.widget.tk_focusPrev().focus() return("break") master.bind(" ", focus_prev_button) -
Bryan 我想如果我知道一种让 tk.focus_next 在下拉列表中工作的方法,我可以工作。我也在考虑更改 tkinter 模块中的绑定,但我不确定这是否是个好主意。
标签: python linux windows events tkinter