1
#! /usr/bin/python

import curses
import curses.textpad as textpad

try:
    mainwindow = curses.initscr()
    textpad.Textbox(mainwindow).edit()
finally:
    curses.endwin()

问题是我输入了一个字符,但屏幕上显示了两个字符。

4

2 回答 2

4

回显默认开启。您需要致电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 编程页面

于 2012-09-16T06:44:21.413 回答
2

使用curses.noecho()

import curses
import curses.textpad as textpad

try:
    mainwindow = curses.initscr()
    curses.noecho()
    textpad.Textbox(mainwindow).edit()
finally:
    curses.endwin()
于 2012-09-16T06:38:34.690 回答