Python Curses виджет текстового поля
#! /usr/bin/python
import curses
import curses.textpad as textpad
try:
mainwindow = curses.initscr()
textpad.Textbox(mainwindow).edit()
finally:
curses.endwin()
проблема в том, что я набираю один символ, но на экране отображаются два символа.
2 ответа
Решение
Эхо включено по умолчанию. Вам нужно позвонить noecho
для деактивации.
#!/usr/bin/env python
import curses
import curses.textpad as textpad
try:
mainwindow = curses.initscr()
# Some curses-friendly terminal settings
curses.cbreak(); mainwindow.keypad(1); curses.noecho()
textpad.Textbox(mainwindow).edit()
finally:
# Reverse curses-friendly terminal settings
curses.nocbreak(); mainwindow.keypad(0); curses.echo()
curses.endwin()
(скрипт был протестирован на Python 2.7). Я предлагаю вам взглянуть на страницу программирования curses.
Использование curses.noecho()
:
import curses
import curses.textpad as textpad
try:
mainwindow = curses.initscr()
curses.noecho()
textpad.Textbox(mainwindow).edit()
finally:
curses.endwin()