gpt4 book ai didi

python - 如何使用带有诅咒的终端调色板

转载 作者:IT老高 更新时间:2023-10-28 20:30:01 25 4
gpt4 key购买 nike

我无法让终端调色板与 curses 一起使用。

import curses

def main(stdscr):
curses.use_default_colors()
for i in range(0,7):
stdscr.addstr("Hello", curses.color_pair(i))
stdscr.getch()

curses.wrapper(main)

此 python 脚本产生以下屏幕:

enter image description here

但是,我的 gnome-terminal 调色板中确实有更多颜色。我如何在 curses 中访问它们?

最佳答案

以下是我在自己的电脑(Ubuntu 14.04,python 3)上通过实验得出的。

  • 有 256 种颜色(由前 8 位定义)。
  • 其他位用于附加属性,例如突出显示。
  • 将数字 -1 作为颜色传递回默认背景和前景色。
  • 颜色对 0 (mod 256) 固定为 (-1, -1)。
  • 颜色 0 到 15 是终端调色板颜色。

考虑以下测试代码。将此添加到您的 .bashrc:

# Set proper $TERM if we are running gnome-terminal
if [ "$COLORTERM" == "gnome-terminal" ]
then
TERM=xterm-256color
fi

把它放在一个python文件中并运行它。

import curses

def main(stdscr):
curses.start_color()
curses.use_default_colors()
for i in range(0, curses.COLORS):
curses.init_pair(i + 1, i, -1)
try:
for i in range(0, 255):
stdscr.addstr(str(i), curses.color_pair(i))
except curses.ERR:
# End of screen reached
pass
stdscr.getch()

curses.wrapper(main)

运行它将产生以下输出。

screenshot

如您所见,颜色对 1-16 是前景色的终端调色板。

关于python - 如何使用带有诅咒的终端调色板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18551558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com