【问题标题】:How can I get more colors in Python's curses?如何在 Python 的诅咒中获得更多颜色?
【发布时间】:2012-10-15 03:18:37
【问题描述】:

我现在正在为学校做一个项目,我正在使用诅咒。虽然,我对颜色的限制有点失望。 colorama 模块有更多颜色,它们在我的终端上工作,所以我知道我的终端有很多颜色。虽然,在 Curses 中,我们只有

COLOR_BLACK
COLOR_RED
COLOR_GREEN
COLOR_YELLOW
COLOR_BLUE
COLOR_MAGENTA
COLOR_CYAN
COLOR_WHITE

如果有更多的颜色,那就太好了。

注意:Colorama 提供 ANSI 转义码,并且不适用于 Curses,因此没有快捷方式。

【问题讨论】:

  • 这就是终端的制造方式。感谢您不必使用单色显示器。 :) 但是,一些现代终端确实支持 256 色,并且 urxvt 将其作为编译时选项。
  • 您使用的是什么终端,TERM 环境变量设置为什么?

标签: python terminal ncurses


【解决方案1】:

curses 中的颜色只是从0curses.COLORS - 1 的一个数字。您列出的那些只是 命名常量 诅咒为您提供的。

Curses 可以很好地支持 256 色,但只有在您的终端通过 TERM 环境变量将自己标识为支持 256 色的终端时,它才会启用该功能。。 p>

虽然大多数现代终端确实多年来支持 256 种颜色,例如 Gnome Terminal 和 Xterm,但许多仍然没有这样报告。

如果您使用env TERM=xterm-256color yourprogram 运行您的程序,curses 将启用 256 种颜色,并且它可以正常工作只要您的终端实际支持它!

如果它确实有效,请将您的终端更改为自动适当地设置其TERM

推荐阅读:

http://blog.sanctum.geek.nz/term-strings/

http://blog.sanctum.geek.nz/256-colour-terminals/

https://unix.stackexchange.com/a/181766/4919

https://askubuntu.com/a/578798/11015

【讨论】:

  • 请注意,FAQ 中记录的颜色对也有限制。简而言之,您可以在 ncurses 5 上使用多达 256 个颜色对,在 ncurses 6 上使用多达 32767 个颜色对。
【解决方案2】:

Urwid支持256 colour terminalspalette_test.py

我推荐它作为 curses 模块的更好替代品(如果项目不需要使用 curses 模块)。

【讨论】:

  • 恕我直言,无需更改模块,因为如果您的 TERM 设置正确,curses 支持 256 种颜色就可以了,并且作为其标准的一部分,它与 Python 一起开箱即用图书馆。
【解决方案3】:

在 GitHub 上有一个免费使用、学习、修改和重新分发高级 GUI 库,地址为“https://github.com/rigordo959/tsWxGTUI_PyVx_Repository”。

它是在 Python 2x 和 3x 中使用“curses”低级 GUI 包实现的。

您的应用程序可以使用像素模式“wxPython”高级 GUI API 的字符模式子集进行编程。它支持带有键盘和鼠标输入的显示器以及各种终端仿真器,包括彩色 xterms(8 色与 64 色对和 16 色与 256 色对)和非彩色 vt100/vt220。

它包括可以配置多达 256 种诅咒颜色的 Python 模块。但是,curses 不能处理超过 256 个颜色对,这意味着如果应用程序需要处理 256 个颜色对来显示或隐藏文本,则不能超过 16 个颜色。

【讨论】:

    【解决方案4】:

    Fabulous 包提供 256 色支持,但未链接到 ncurses。不过,我相信您可以将两者混合使用。

    【讨论】:

      猜你喜欢
      • 2011-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-23
      • 2013-10-26
      • 2018-12-21
      • 2012-04-08
      • 1970-01-01
      相关资源
      最近更新 更多