如何在ncurses中重新定义颜色对?
发布时间:2020-12-16 07:03:16 所属栏目:百科 来源:网络整理
导读:标题应该说明一切,所以说我创建了一个这样的颜色对: init_pair(1,COLOR_RED,COLOR_BLACK); 然后我想重新定义它,像这样: init_pair(1,COLOR_GREEN,COLOR_BLUE); 现在这不起作用,但还有其他任何功能允许我这样做吗?或者哎呀,是否有功能,以便我可以使用明确
标题应该说明一切,所以说我创建了一个这样的颜色对:
init_pair(1,COLOR_RED,COLOR_BLACK); 然后我想重新定义它,像这样: init_pair(1,COLOR_GREEN,COLOR_BLUE); 现在这不起作用,但还有其他任何功能允许我这样做吗?或者哎呀,是否有功能,以便我可以使用明确的前景/背景颜色而不使用颜色对? 在此先感谢,如果不够清楚,请告诉我. 编辑:尝试后,你可以使用init_pair重新定义对,我的代码中的问题是在其他地方. 解决方法
您可以一次最多定义7个颜色对,如果愿意,可以按顺序显示它们.您只需更改数字并刷新即可.例如. (我们将用3执行)请参阅
here以获取7的示例的打印输出
#include <curses.h> int COLOR_PAIR (int PAIR_NUMBER) init_pair(1,COLOR_RED); init_pair(2,COLOR_BLUE); init_pair(3,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 here的例子 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |