Не удается остановить отображение клавиш стрелок на консоли в Python с библиотекой curses - PullRequest
0 голосов
/ 10 апреля 2020

Ниже мой код. Я пытаюсь создать простой текстовый редактор и стараюсь, чтобы клавиши со стрелками не выводились на консоль, но это все равно происходит. Любая помощь, пожалуйста?

import curses

text = []


def main(screen):
    curses.curs_set(1)
    curses.noecho()

    while True:
        newChar = screen.getkey()

        if newChar != curses.KEY_LEFT or curses.KEY_RIGHT or curses.KEY_UP or curses.KEY_DOWN:
            text.append(newChar)

        screen.addstr(0, 0, "".join(text))
        screen.refresh()


curses.wrapper(main)```

1 Ответ

0 голосов
/ 11 апреля 2020

getkey возвращает строку; сравнение его с целым числом, таким как curses.KEY_UP, не даст ожидаемого результата.

Это работает:

import curses

text = []


def main(screen):
    curses.curs_set(1)
    curses.noecho()

    while True:
        newChar = screen.getch()
        # newChar = screen.getkey()

        if newChar != curses.KEY_LEFT and curses.KEY_RIGHT and curses.KEY_UP and curses.KEY_DOWN:
            screen.addstr(0, 0, curses.keyname(newChar))

        screen.refresh()


curses.wrapper(main)
...