gpt4 book ai didi

C 编程 ncurses 颜色在多个窗口上不起作用

转载 作者:行者123 更新时间:2023-11-30 16:10:11 26 4
gpt4 key购买 nike

我正在 Linux 上使用 ncurses,我创建了两个窗口(winReception 和 winTransmission),基本上 winTransmission 用于编写要在 winReception 中打印的内容。因此,我想以某种颜色打印 winReception 中的文本,但它无法正常打印,没有颜色。

对于为什么它不起作用有什么想法吗?我尝试更改窗口的颜色,但它更改了窗口中所有文本的颜色,这不是我想要的。

编辑:忘记提及 winTransmission 不需要更改颜色。只有 winReception 需要改变颜色。

这是您需要了解我在做什么的代码:

    initscr();

/* WINDOW RECEPTION */
winReception = newwin(27, 0, 0, 0);

/* WINDOW TRANSMISSION */
winTransmission = newwin(8, 0, 27, 0);

if (!has_colors()) {
endwin();
fprintf(stderr, "Error - no color support on this terminal\n");
exit(1);
}

if (start_color() != OK) {
endwin();
fprintf(stderr, "Error - could not initialize colors\n");
exit(2);
}

init_pair(1, COLOR_RED, COLOR_BLACK);
init_pair(2, COLOR_RED, COLOR_GREEN);


attrset(COLOR_PAIR(1));
/* WINDOW RECEPTION */
mvwprintw(winReception, 1, 2, "%s", textinwindow);
wrefresh(winReception);

/* WINDOW TRANSMISSION */
touchwin(winTransmission);
wclear(winTransmission);
wrefresh(winTransmission);

最佳答案

您设置颜色属性的唯一位置是

attrset(COLOR_PAIR(1));

但这仅适用于stdscr

也许你的意思是

wattrset(winReception, COLOR_PAIR(1));

关于C 编程 ncurses 颜色在多个窗口上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58943448/

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