如何在Linux中让小键盘上的箭头键和回车键像Windows 7一样工作

9 投票
1 回答
1264 浏览
提问于 2025-04-18 00:22

我正在开发一个程序,用来控制一台只有键盘连接的机器。我使用的是 Python 2.7Tkinter 8.5。我用 OptionMenu 让用户可以对机器进行设置。

在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()

1 个回答

1

通过这个脚本(来自这里),你可以很容易地识别出当你按下任何键时,Tkinter触发的键事件。不管是<Return><KP_Enter>,还是其他的(也许你的键盘有些奇怪的映射)。

只需在你按下想要的按钮时查看控制台输出,然后在你的实际代码中使用那个键事件名称就可以了。

import Tkinter

def callback(e):
    print e.keysym

w = Tkinter.Frame(width=512, height=512)
w.bind("<KeyPress>", callback)
w.focus_set()
w.pack()
w.mainloop()

撰写回答