Python: curses与默认黑色
为什么这段 Python 代码没有显示正常的 黑色
背景呢?
import curses
def func(stdscr):
c = stdscr.getkey()
curses.wrapper(func)
我真的搞不懂。我尝试了很多东西(比如 color_pair
、pair_number
、init_pair
等等)。结果真的不是黑色。
我使用的是默认的 Ubuntu Gnome 终端。(但据我所知,这应该没什么影响)。
2 个回答
4
在 gnome-terminal
里,有一个叫做 Palette
的设置。你可以在 `编辑个人资料 -> 颜色` 这个选项里找到它。这个调色板的设置只适用于终端应用程序。
所以在同一个对话框里,其他的设置(前景色/背景色)对应用程序来说是没用的。
4
除非你手动指定颜色,否则curses会遵循你终端的颜色设置。大多数终端会使用你在.Xresources或.Xdefaults文件中的设置(对于gnome-terminal我就不太确定了)。
不过,如果你想手动定义颜色,可以使用curses.init_color这个方法。但要注意,这个方法并不是在所有终端上都能用,关于它的使用方法可以查看python curses文档。记得在退出之前重置颜色(curses.wrapper应该会帮你处理这个)。
def func(stdscr):
if curses.can_change_color():
# init_color(n, r, g, b)
# n=0 is background
curses.init_color(0, 0, 0, 0)
c = stdscr.getkey()