加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何在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的例子

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读