如何在Python中检测ALT + 键组合

8 投票
1 回答
6272 浏览
提问于 2025-04-17 22:00

我刚接触Python,正在使用curses这个库。我想要检测一些按键组合,比如ALT+F之类的。目前,我使用getch()来获取按下的键,然后在curses窗口中打印出来。但是,无论是单独按F还是ALT+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)

1 个回答

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)

撰写回答