我可以使用 echo()
和 noecho()
在 curses 中设置 echo 状态,但是我如何才能看到我当前处于什么状态?这是我正在尝试做的事情:
# get current echo state
if screen.echo_is_on():
my_echo_state=False # echo is currently off
curses.echo() # turn echo on
else:
my_echo_state=True # echo is already on
# get input from user
input_str = screen.getstr(r, c)
# return echo to previous state
if my_echo_state==False:
curses.noecho()
我正在寻找可以完成 screen.echo_is_on()
的东西。
Python 中的echo
没有getter 函数curses binding .
- Python 具有对应于 curses C 函数的方法。
- C 绑定(bind)中
echo
(以及一些其他函数)的状态存储在 SCREEN
结构中,该结构通常是不透明的。
- 其他状态信息存储在
WINDOW
中,它不是不透明的。
原始 curses 界面有扩展。 NetBSD 为 WINDOW
等引入了opaque 结构的概念。后来,ncurses 将其用作帮助隐藏/控制线程应用程序状态信息的选项。为此,ncurses 添加了从 WINDOW
访问数据的函数(参见 curs_opaque(3x))。
但是,没有用于访问SCREEN
内容的新函数。 curs_inopts(3x) 中描述了这些的启用/禁用功能.
如果您需要一个getter,您可以自己编写一个,例如,作为一个隐藏对echo
和noecho
的实际调用的类.
我是一名优秀的程序员,十分优秀!