是否有可能/如何在python中将前端格式化的彩色文本呈现给curses.window
?
基本上,我试图在已经呈现彩色日志输出的现有控制台应用程序之上添加一些简单的基于curses的UI内容,我试图将其重定向到curses {{1} }。
然而,似乎curses以某种方式关闭了控制颜色的各种控制代码。
这是一个最小的脚本,使用window
作为文本来源的替身:
colorama
这呈现:
import colorama
import curses
def run_gui():
stdscr = curses.initscr()
curses.start_color()
curses.use_default_colors()
stdscr.insertln()
stdscr.insertln()
stdscr.insstr(colorama.Fore.RED+'wattt'+colorama.Style.RESET_ALL)
stdscr.insertln()
stdscr.insstr(colorama.Fore.GREEN+'wattt'+colorama.Style.RESET_ALL)
stdscr.insertln()
stdscr.insstr(colorama.Fore.YELLOW+'wattt'+colorama.Style.RESET_ALL)
stdscr.insertln()
stdscr.refresh()
if __name__ == '__main__':
run_gui()
有没有办法告诉curses允许正常的控制代码,还是我不得不重做所有现有的颜色功能?
答案 0 :(得分:0)
简短:后者("返工")。
长:
"正常控制码"碰巧与设备有关; curses为终端提供与设备无关的接口。引自manual page:
ncurses库例程为用户提供了一个与终端无关的例程 合理优化更新字符屏幕的方法。
实际上大多数curses实现都通过terminfo-based functions提供了一个低级接口,可以让你做一些特殊的调整,但是
Python文档提到了属性,例如,在window.insstr(
str[,
attr])
您的示例可以执行类似
的操作stdscr.insstr("wattt", COLOR_PAIR(COLOR_RED))
之前曾询问过您所询问的内容。例如: