如果按下的鍵是非ASCII,則getch()
方法返回主窗口和墊的不同值。例如,按下箭頭鍵,我會在主窗口中獲得預期的KEY_UP
,KEY_DOWN
等,但是在墊中,我獲得65
的向上箭頭和66
的向下箭頭。爲什麼會這樣,並且有沒有辦法在pad中獲得大於255的特殊鍵值?curses getch()返回主窗口和python中的墊的不同值
我使用Python 2.6.5。
下面的代碼演示了這個問題:
import curses
def main(stdscr):
c = None
while c != curses.KEY_RIGHT:
c = stdscr.getch()
stdscr.addstr(0, 0, "%3d" % c)
stdscr.refresh()
pad = curses.newpad(20, 20)
while True:
c = pad.getch()
pad.addstr(0, 0, "%3d" % c)
pad.refresh(0, 0, 1, 0, 20, 20)
if __name__ == '__main__':
curses.wrapper(main)
謝謝@LeoNerd,這讓我在進一步調查的方式。我不熟悉術語CSI和SS3,但發現「CSI是ESC,後面是7位連接的左括號([)或8位連接上的小數位155,SS3是ESC後跟O(大寫字母O)在7位連接上,而在8位連接上則爲小數點143。「 我會點擊「這個答案很有用」,但我沒有足夠的聲望。 – Bjorn