带有ncurses的多行菜单项?

时间:2015-12-30 16:14:33

标签: ncurses

menu的{​​{1}}扩展似乎坚持所有菜单项都具有相同的宽度。这意味着如果一个菜单项非常宽而其他菜单项很窄,那么浪费了大量空间并且屏幕宽度不够。

我想到的一个解决方法是使用ncurses函数将长菜单项拆分为多行:

set_menu_spacing

但是,我不知道如何让我的宽项目使用这两行。我尝试将set_menu_spacing(myMenu, 1, 2, 1); // all menu items will get two rows 插入到代表该项目的字符串中,但这导致隐藏了以名称\n出现的项目开头的所有项目。我该怎么做才能让多行项目起作用?

1 个答案:

答案 0 :(得分:1)

简短回答:不,你不能用现有的库来做到这一点。

注意到set_menu_spacing是一个ncurses 扩展名,该库不会检查项目名称或说明中的换行符。

ncurses菜单(以及表单和面板)库是为了与System V's menu,表单,面板库(主要是SCO和Solaris,因为AIX和HPUX没有这些库)兼容而编写的。对Solaris 10的快速检查表明,它也不期望嵌入式换行。但是,它可能是一个有用的扩展,因为没有有用的程序会破坏,如果修改了ncurses来做一些有用的事情。