我可以使用echo()
和noecho()
在curses中设置回显状态,但是如何查看当前处于什么状态?这是我想做的事情:
# 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 curses binding中没有echo
的getter函数。
Python具有与curses C函数相对应的方法。
C绑定中的echo
状态(以及其他一些功能)存储在SCREEN
结构中,该结构通常是不透明的。
其他状态信息存储在不透明的WINDOW
中。
原始curses界面有扩展。 NetBSD引入了WINDOW
等不透明结构的概念。后来,ncurses将其用作帮助隐藏/控制线程应用程序的状态信息的选项。为此,ncurses添加了用于从WINDOW
访问数据的功能(请参见curs_opaque(3x))。
但是,没有用于访问SCREEN
内容的新功能。 curs_inopts(3x)中介绍了这些功能的启用/禁用功能。
如果需要吸气剂,则可以自己编写一个,例如,作为隐藏对echo
和noecho
的实际调用的类。
关于python - 在Python中获取curses中的回声/无回声状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35587549/