fbterm
库编写 python-curses
上的 TUI 软件。
我按如下方式缩写了颜色对(此处的文档),并在我的代码中使用了这对颜色:
curses.init_pair(1, curses.COLOR_BLACK, curses.COLOR_WHITE)
这不是全白,我在这个显示器上见过全白。
注意:如果您检查黑白值,它们分别为 0 7。
>>> import curses
>>> print(curses.COLOR_BLACK, curses.COLOR_WHITE)
0 7
当用
for i in {0..255}; do echo -ne "\E[2;$i}$i "; done; tput sgr0; echo
列出 fbterm 上的可用颜色时(从此线程读取或仅查看图像)。 0=黑色,7=灰色,15=白色
所以,当我的Python尝试发送白色(
python-curses
认为白色是7)并给出fbterm
时。 fbterm
收到7并认为它是灰色的。
我的理由:如果
python-curses
发送15到fbterm
,它可能会认为它是白色的。
curses.init_pair(1, curses.COLOR_BLACK, 15)
由此我得出以下 2 个结果:
fbterm
内执行,则会出错:_curses.error: init_pair() returned ERR
ssh
-ed),软件正在运行,并且白色更白。这2个不同的输出,可能是由不同的环境变量引起的:
lxterminal
):$TERM
是 xterm-256color
fbterm
上):$TERM
是 linux
TERM
变量设置为 fbterm
我的理由:
fbterm
没有设置正确的环境变量 - >不能使用256种颜色。 (以下来自手册页):
...默认情况下,FbTerm 将环境变量“TERM”设置为“linux”,用户需要 运行“TERM=fbterm /path/to/program”以启用 256 色模式。
所以我设置手动执行
TERM=fbterm
(或TERM=fbterm python3 main.py
),并执行我的Python代码。
它显示全亮白色,但文字都是乱序的:
ÚÄÄÄÄÄ¿
³Meas.³
ÀÄÄÄÄÄÙ ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿
ÚÄÄÄÄÄ¿ ³1-shot ³³n-shot ³
³Setup³ ³ ³³ ³
ÀÄÄÄÄÄÙ ³ ³³ ³
ÚÄÄÄÄÄ¿ ³ ³³ ³
³Data ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÙÀÄÄÄÄÄÄÄÄÄÄÄÄÙ
ÀÄÄÄÄÄÙ
ÚÄÄÄÄÄ¿
³About³ ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿
ÀÄÄÄÄÄÙ ³Target ³³Weather ³
ÚÄÄÄÄÄ¿ ³ ³³ ³
³Sys. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÙÀÄÄÄÄÄÄÄÄÄÄÄÄÙ
ÀÄÄÄÄÄÙ
用于绘制方框的
|
-
(和90度的东西)之类的字符似乎是乱序的,但实际的文本字符串是好的。
/ps:这些矩形是由
window.box()
绘制的,由 curses.newwin()
/ 自行生成
你能帮我在这里上色吗?不打乱我的文字?.
接下来我应该尝试什么?
/P.S 尝试PURE WHITE的原因:是为了增加黑色部分的对比度 为了能见度。 (该设备(手持式)将在白天/室外使用)。 此外,欢迎提供提高可视性的提示。谢谢。 /
你能帮我在这里上色吗?不打乱我的文字?.
根据其文档,fbterm 支持 xterm 256 色扩展的变体:
256 色扩展 FbTerm 支持 xterm 的 256 色模式扩展。前16种颜色 是默认的终端颜色。此外,还有 6x6x6 颜色 立方体和 24 种灰度色调。但是 xterm 的 256 种颜色转义序列 与 FbTerm 实现的 linux 序列冲突,所以私有 es- 引入 Cape 序列来支持此功能: 电子稳定控制系统 [ 1 ; n } 将前景色设置为 n (0 - 255) 电子稳定控制系统 [ 2 ; n } 将背景颜色设置为 n (0 - 255) 电子稳定控制系统 [ 3 ; ; ; G ; b } 将颜色 n 设置为 (r, g, b) , n, r, g、b 全部在 (0 - 255) 添加了一个名为“fbterm”的新 terminfo 数据库条目来使用这些 私有序列,所有基于 terminfo 的程序都应该使用它。 默认情况下,FbTerm 将环境变量“TERM”设置为值“fbterm”。 或者,“TERM”变量可以设置为“linux”,在这种情况下 256 色模式将不可用。
使用 xterm 256 色调色板,您的纯白色是颜色编号 15:
fbterm
的终端描述,您可以在完整的终端数据库中找到它,例如“ncurses-term”。
“linux”(有 8 种颜色)和“xterm-256color”(颜色 和 线条绘制所需的不同转义序列)都不适用于 fbterm。使用 infocmp 显示差异。