使用python诅咒更改输入文本的颜色
我正在使用python的诅咒包装器库开发一个文本游戏。 我想由用户输入的文本是一个不同于游戏输出文本的颜色。我在为输出文本定义颜色对方面没有问题,但我不知道如何在用户主动键入时更改输入文本以显示不同的颜色 目前,我使用使用python诅咒更改输入文本的颜色,python,text,terminal,ncurses,Python,Text,Terminal,Ncurses,我正在使用python的诅咒包装器库开发一个文本游戏。 我想由用户输入的文本是一个不同于游戏输出文本的颜色。我在为输出文本定义颜色对方面没有问题,但我不知道如何在用户主动键入时更改输入文本以显示不同的颜色 目前,我使用getstr()方法获取所有输入 python/curses可以这样做吗 谢谢, Ian当您可以在启用echo的情况下初始化Python curses包装时,如果您正在使用curses包装,如果最初关闭echo,例如 # Initialize curses std
getstr()
方法获取所有输入
python/curses可以这样做吗
谢谢,
Ian当您可以在启用
echo
的情况下初始化Python curses包装时,如果您正在使用curses包装,如果最初关闭echo,例如
# Initialize curses
stdscr = curses.initscr()
# Turn off echoing of keys, and enter cbreak mode,
# where no buffering is performed on keyboard input
curses.noecho()
curses.cbreak()
如果诅咒没有回响,你的程序就必须进行一些回响。但是,由于您使用的是getstr
,这意味着您已经打开了echo,因为getstr
的(ncurses)手册页面显示
仅当当前启用“回显”时,才会回显输入的字符。在这种情况下,退格将作为删除前一个字符(通常是左运动)进行回显
在这种情况下,您可以(取决于窗口的组织方式)使用:
将“背景”属性集设置为attr。此集合最初为0(无属性)
“背景”是指窗口属性,它与添加到窗口中的文本相关联的属性合并。由于getstr
添加的文本中没有任何属性,因此设置窗口属性“修复”了您的问题。但是请记住,当getstr
完成时,您需要保存原始属性以还原它们
ncurses手册页对此进行了解释。该函数在内部使用
waddch
(与printw
,addstr
)一样),但其手册页面并未提及这一点。您只需使用getch
获取输入,并按自己的意愿显示即可。它不像默认的input
/raw\u input
方法,它从stdin
获取输入,并将其输出到stdout
。