如何在python中检测curses ALT +组合键

wuf*_*foo 5 python curses

这里是python的新手,并使用curses导入.我想检测像ALT+ F和类似的关键组合.目前,我正在使用getch()接收密钥然后在curses窗口中打印它.值FALT+ 不会改变F.如何检测ALT组合键?

import curses

def Main(screen):
   foo = 0
   while foo == 0: 
      ch = screen.getch()
      screen.addstr (5, 5, str(ch), curses.A_REVERSE)
      screen.refresh()
      if ch == ord('q'):
         foo = 1

curses.wrapper(Main)
Run Code Online (Sandbox Code Playgroud)

Woj*_*zak 6

尝试这个:

import curses

def Main(screen):
   while True:
      ch = screen.getch()
      if ch == ord('q'):
         break
      elif ch == 27: # ALT was pressed
         screen.nodelay(True)
         ch2 = screen.getch() # get the key pressed after ALT
         if ch2 == -1:
            break
         else:
            screen.addstr(5, 5, 'ALT+'+str(ch2))
            screen.refresh()
         screen.nodelay(False)

curses.wrapper(Main)
Run Code Online (Sandbox Code Playgroud)

  • OP,^这是我见过的最好的方法。否则,您可能不喜欢他们所说的,但请查看http://stackoverflow.com/questions/9750588/how-to-get-ctrl-shift-or-alt-with-getch-ncurses 祝你好运! (2认同)