如何在不丢失当前位置的情况下重新加载菜单中的数据?
例如,当用户“选择”某个项目时,执行的操作会更改数据。 (更新项目、删除项目或向菜单添加新项目。)我想重新加载菜单,但仍将光标保留在刚刚选择的项目上。最好的方法是什么?
作为参考,这个问题似乎非常接近,但我不认为它涵盖了添加/删除问题:如何替换 ncurses 和 C 中的字符串菜单项 https://stackoverflow.com/questions/10252340/how-to-replace-a-string-menu-item-in-ncurses-c
这个问题看起来也很相似,但对我来说太具体了:Ncurses 菜单 - 记住选择 https://stackoverflow.com/questions/11016512/ncurses-menu-remembering-selection
如果您重建菜单,您的程序将必须跟踪之前的“当前”项目,并在通过以下方式恢复读取之前找到它:getch
. The getch http://invisible-island.net/ncurses/man/curs_getch.3x.html函数刷新屏幕,并且您的程序为getch
成为明显的光标位置。
通常你会使用item_index
询问菜单库当前项目是什么,以及set_current_item http://invisible-island.net/ncurses/man/mitem_current.3x.html告诉菜单库光标将位于哪个项目上,但可以进行调用getch
屏幕上的“任何地方”。同样,如果您重建菜单,该索引信息可能会过时。
由于没有特定的示例程序,因此只能提供一般性建议。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)