Как мне переопределить пару цветов в ncurses?
Название должно сказать все это, так что я создал пару цветов следующим образом:
init_pair(1, COLOR_RED, COLOR_BLACK);
И тогда я хотел переопределить это, как это:
init_pair(1, COLOR_GREEN, COLOR_BLUE);
Теперь это не работает, но есть ли другие функции, которые позволяют мне это делать? Или, черт возьми, есть функции, чтобы я мог просто использовать явные цвета переднего плана / фона, не используя пары цветов?
Спасибо заранее, и дайте мне знать, если это не достаточно ясно.
РЕДАКТИРОВАТЬ: После того, как вы попробуете это, вы можете переопределить пары, используя init_pair
и проблема в моем коде была где-то еще.
1 ответ
Вы можете определить до 7 пар цветов одновременно и показать их все по порядку, если хотите. Вы просто меняете номер и обновляете. например. (мы сделаем это с 3) см. здесь для распечатки примера с 7
#include <curses.h>
int COLOR_PAIR (int PAIR_NUMBER)
init_pair(1, COLOR_GREEN, COLOR_RED);
init_pair(2, COLOR_GREEN, COLOR_BLUE);
init_pair(3, COLOR_RED, COLOR_BLUE);
for (i=1, i <=3, i++){
attroffset(A_BOLD)
attrset(COLOR_PAIR(i))
refresh();
sleep(1);
}
обратите внимание, если у вас много пар и второй цвет всегда один и тот же, или первый цвет уникален в каждой паре, вы можете включить его с помощью attron (), например, attron(COLOR_PAIR(COLOR_BLUE)); (это не будет работать в наших определениях)
Вы можете посмотреть пример attron здесь