【问题标题】:ord() to catch Arrow Key press on Linux and Mac [duplicate]ord() 在 Linux 和 Mac 上捕获箭头键按下 [重复]
【发布时间】:2015-08-07 18:42:51
【问题描述】:

如何使用 ord() 在 Mac 和 Linux 中捕捉箭头键按下?我知道您可以在 Windows 中使用 msvcrt。他们没有与之相关的角色。

【问题讨论】:

标签: python linux macos key-bindings keycode


【解决方案1】:

你说的是控制台吗?

如果您想避免使用 msvcrt,我有一个 hacky 解决方案。

    value = raw_input("Hit left arrow key then ENTER: ")
    print ord(value[0]), ord(value[1]), ord(value[2])
    if ord(value[0]) == 27 and ord(value[1]) == 91 and ord(value[2]) == 68:
        print "You hit the left key!"
    elif ord(value[0]) == 27 and ord(value[1]) == 91 and ord(value[2]) == 67:
        print "You hit the right key!"

这是为了说明它是如何完成的。您可以根据需要轻松地将其浓缩为更简洁的系统。您可以使用 ord -- 只需要记住它是一个多字符的字符串,您需要逐个字符地分析。

【讨论】:

  • 有没有办法可以避免按回车键?这想解决我现在遇到的所有问题。我实际上将它用于我用 wxPython 制作的 GUI,但是他们用来捕捉按键的东西在 Mac 上不起作用....soooo 这是我试图手动完成的。这就是为什么我需要避免按回车键的原因,因为我不能真正使用终端或控制台:(((但是你应该为这个好的解决方法投票:)
  • 在你的程序中按下这些键你是否得到了一个keyCode?还是当你按下这些键时它什么也不做?
  • 您是否为 wxPython 发布了问题?因为箭头键上的 EVT_KEY_DOWN 触发 NO 事件的想法是有问题的。您绝对应该考虑在其他系统上对其进行测试,以消除情况中的一些变量。
  • 我还没有发布...我想我会的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-30
  • 1970-01-01
  • 1970-01-01
  • 2016-01-04
  • 1970-01-01
  • 2012-01-27
  • 1970-01-01
相关资源
最近更新 更多