ncurses
的menu
扩展似乎坚持所有菜单项都具有相同的宽度。
我想到的一种解决方法是使用set_menu_spacing
函数将长菜单项拆分为几行:
set_menu_spacing(myMenu, 1, 2, 1); // all menu items will get two rows
但是,我不知道如何让我的宽项目使用这两行。我试图将\n
插入到表示该项的字符串中,但这导致隐藏了以其名称\n
出现的项开头的所有项。我应该怎么做才能让多行项目正常工作?
发布于 2015-12-31 01:24:27
简短的回答:不能,您不能使用现有的库来做到这一点。
注意到set_menu_spacing
是一个ncurses扩展,库不检查项目名称或描述中的换行符。
ncurses菜单(以及表单和面板)库是为了与System V's menu、表单、面板库(基本上是SCO和Solaris,因为AIX和HPUX没有这些库)兼容而编写的。快速检查一下Solaris10就会发现,它也没有使用嵌入式换行符。然而,它可能是一个有用的扩展,因为在这种情况下,如果ncurses被修改为做一些有用的事情,那么没有任何有用的程序会崩溃。
https://stackoverflow.com/questions/34533065
复制相似问题