Как вернуть строковое значение с помощью ncurses?

Я пробовал win.inch(y,x) а также win.instr(y,x), четное win.getch() а также win.getkey(), Никто не может добиться детективного эффекта? Я искал через stackru и google, но пока не нашел решения. Я уже прочитал руководство по проклятиям Python. Но до сих пор не могу решить это.

Мой код:

import curses

stdscr = curses.initscr()
stdscr.addstr(1,1,'x')
if stdscr.inch(1,1) == 'x':
    stdscr.addstr(2,1,'success')
    stdscr.refresh()

stdscr.getch()
curses.endwin()

Я запустил этот кусок кода, но никаких "успехов" не было показано на экране. Я отлаживал свой код в течение 4 часов прошлой ночью. И я уверен, что застрял в этом ценностном иске ", если stdscr.inch(1,1,) == 'x': ". Как я мог реализовать свою цель, чтобы увидеть, есть ли конкретная строка в координате, а затем выполнить соответствующее действие?

1 ответ

Решение

curses.window.inch возвращает int не str,

Следующая строка:

if stdscr.inch(1, 1) == 'x':

должно быть:

if stdscr.inch(1, 1) & 0xff == ord('x'):

или используя instr (без указания длины, instr возвращает строку, начинающуюся с заданной позиции до конца строки):

if stdscr.instr(1, 1, 1) == 'x':
Другие вопросы по тегам