ncurses multi couleurs sur l'écran
Je veux faire un menu avec ncurses.h
et plus d'une couleur.
Je veux dire quelque chose comme ceci:
┌────────────────────┐
│░░░░░░░░░░░░░░░░░░░░│ <- color 1
│▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│ <- color 2
└────────────────────┘
Mais si j'utilise init_pair()
, attron()
et attroff()
la couleur de l'écran est le même, et pas comme je l'ai prévu.
initscr();
init_pair(0, COLOR_BLACK, COLOR_RED);
init_pair(1, COLOR_BLACK, COLOR_GREEN);
attron(0);
printw("This should be printed in black with a red background!\n");
refresh();
attron(1);
printw("And this in a green background!\n");
refresh()
sleep(2);
endwin();
Quel est le problème avec ce code?
Merci pour toute les réponses!
OriginalL'auteur qwertz | 2012-05-07
Vous devez vous connecter pour publier un commentaire.
Voici une version de travail:
Notes:
start_color()
aprèsinitscr()
à utiliser la couleur.COLOR_PAIR
macro pour passer d'une paire de couleur alloué avecinit_pair
àattron
et coll.refresh()
la fois, et seulement si vous souhaitez que votre être considérée à ce point, et vous n'êtes pas à l'appel d'une fonction d'entrée commegetch()
.Ce HOWTO est très utile.
Peut-être parce que il n'y a pas besoin pour cela? Je veux dire, bien sûr, vous spécifier exactement ce que la fenêtre imprimer et où vous le voulez, mais pourquoi s'embêter avec tout ça quand le comportement de
printw("...\n")
fait ce dont vous avez besoin?OriginalL'auteur Michael Slade
Vous devez initialiser les couleurs et l'utilisation de la COLOR_PAIR macro.
Paire de couleur
0
est réservée aux couleurs par défaut vous devez donc commencer votre indexation à1
.OriginalL'auteur Morpfh