0

我打印了我的第一个curses程序。

我突然很好奇 Curses UI 中是否可以使用圆角。可以画圆角吗?如果它支持 Unicode,并且可以打印一些字符,例如;

  ╭╮ ╰╯ (U+256D~2570)

 这是可能的。我应该更改源代码吗...?还是有一些 API 可以更改这些字符?

在此处输入图像描述

4

2 回答 2

0

ncurses 使用一个表(来自 terminfo/termcap),它告诉 ncurses 如何将“备用”字符集映射到终端的图形字符集。

如果要更改此设置,您需要更改终端的 terminfo/termcap 条目。

有关 terminfo 文件格式的详细信息,请参见terminfo 手册页。特别是查看“线条图形”部分。

于 2013-10-21T17:06:49.357 回答
0

Ncurses5.3 版开始具有设置窗口边框的功能,专门接受宽(unicode)字符,称为:

int border_set( const cchar_t *ls, const cchar_t *rs, const cchar_t *ts, const cchar_t *bs, const cchar_t *tl, const cchar_t *tr, const cchar_t *bl, const cchar_t *br );
int wborder_set( WINDOW *win, const cchar_t *ls, const cchar_t *rs, const cchar_t *ts, const cchar_t *bs, const cchar_t *tl, const cchar_t *tr, const cchar_t *bl, const cchar_t *br);

border_set 和 wborder_set 函数在当前或指定窗口的边缘绘制边框。这些函数不会改变光标位置,也不会换行。

哪个使用cchar_t

cchar_t 引用一串宽字符(___source___)

#define CCHARW_MAX 5
typedef struct
{
    attr_t  attr;
    wchar_t chars[CCHARW_MAX];
}
cchar_t;

而不是chtypewhichborderwborder 函数使用。

于 2021-10-15T06:48:42.227 回答