如何在 Linux 中获取箭头键并在键盘上输入键以表现得像 Windows 7

Posted

技术标签:

【中文标题】如何在 Linux 中获取箭头键并在键盘上输入键以表现得像 Windows 7【英文标题】:How to get arrow keys and enter key on key pad in Linux to behave like windows7 【发布时间】:2014-05-08 14:17:03 【问题描述】:

我正在开发一个程序来控制一台只连接一个键盘的机器。我正在使用Python 2.7Tkinter 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()

【问题讨论】:

您是否尝试过创建与&lt;KP_Enter&gt; 的绑定?您的代码仅显示&lt;Return&gt; 上的绑定。 我发布了错误的代码,但它不适用于 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 模块中的绑定,但我不确定这是否是个好主意。 【参考方案1】:

使用这个脚本(来自here),当你按下任何键时,应该很容易识别由Tkinter触发的键事件,无论是&lt;Return&gt;&lt;KP_Enter&gt;,还是(不知何故,也许你的键盘有一个有趣的映射)别的东西。

只需在您按下所需按钮时查看控制台输出,并在实际代码中使用该键事件名称。

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

【讨论】:

以上是关于如何在 Linux 中获取箭头键并在键盘上输入键以表现得像 Windows 7的主要内容,如果未能解决你的问题,请参考以下文章

遍历多个hashmap键并在jsp上显示[重复]

在Xshell 6开NumLock时按小键盘上的数字键并不能输入数字

如何在 QT 虚拟键盘上按下信号键并播放声音点击轨道?

如何让 python 检测键盘的击键并根据 Windows 中的输入键发送不同的字符串

如何通过在两个表中映射不同的键并在列值上隐含一些逻辑来创建关联

如何让数字键盘箭头在 Linux 上与 Java 应用程序一起使用