我找不到任何方法可以将ncurses表单库中的游标颜色从绿色更改为其他任何内容。谷歌搜索和搜索手册页的光标或颜色没有帮助。有谁知道这是怎么做的?
答案 0 :(得分:1)
您可以通过编写\e]12;COLOR\a
或\033]12;COLOR\007
来更改颜色,它们都是相同的,这是一个简单的示例:
#include <stdio.h>
#include <unistd.h>
void cursor_set_color_string(const char *color) {
printf("\e]12;%s\a", color);
fflush(stdout);
}
int main(int argc, char **argv) {
cursor_set_color_string("yellow"); sleep(1);
cursor_set_color_string("gray"); sleep(1);
cursor_set_color_string("blue"); sleep(1);
cursor_set_color_string("red"); sleep(1);
cursor_set_color_string("brown"); sleep(1);
return 0;
}
以下是颜色名称列表:Xterm Colors。
看起来您也可以使用\e]12;#XXXXXX\a
形式的RGB颜色:
#include <stdio.h>
#include <unistd.h>
void cursor_set_color_rgb(unsigned char red,
unsigned char green,
unsigned char blue) {
printf("\e]12;#%.2x%.2x%.2x\a", red, green, blue);
fflush(stdout);
}
int main(int argc, char **argv) {
cursor_set_color_rgb(0xff, 0xff, 0xff); sleep(1);
cursor_set_color_rgb(0xff, 0xff, 0x00); sleep(1);
cursor_set_color_rgb(0xff, 0x00, 0xff); sleep(1);
cursor_set_color_rgb(0x00, 0xff, 0xff); sleep(1);
return 0;
}