menu
的{{1}}扩展似乎坚持所有菜单项都具有相同的宽度。这意味着如果一个菜单项非常宽而其他菜单项很窄,那么浪费了大量空间并且屏幕宽度不够。
我想到的一个解决方法是使用ncurses
函数将长菜单项拆分为多行:
set_menu_spacing
但是,我不知道如何让我的宽项目使用这两行。我尝试将set_menu_spacing(myMenu, 1, 2, 1); // all menu items will get two rows
插入到代表该项目的字符串中,但这导致隐藏了以名称\n
出现的项目开头的所有项目。我该怎么做才能让多行项目起作用?
答案 0 :(得分:1)
简短回答:不,你不能用现有的库来做到这一点。
注意到set_menu_spacing
是一个ncurses 扩展名,该库不会检查项目名称或说明中的换行符。
ncurses菜单(以及表单和面板)库是为了与System V's menu,表单,面板库(主要是SCO和Solaris,因为AIX和HPUX没有这些库)兼容而编写的。对Solaris 10的快速检查表明,它也不期望嵌入式换行。但是,它可能是一个有用的扩展,因为没有有用的程序会破坏,如果修改了ncurses来做一些有用的事情。