如何在不丢失当前位置的情况下重新加载菜单中的数据?
例如,当用户"选择"项目,并执行更改数据的操作。 (更新项目,删除项目或在菜单中添加新项目。)我想重新加载菜单但仍然将光标保持在刚刚选择的项目上。最好的方法是什么?
作为参考,此问题似乎非常接近,但我认为它不包含添加/删除问题:How to replace a string menu item in ncurses & C
这个问题似乎也很相似,但对我来说太具体了:Ncurses menu - remembering selection
答案 0 :(得分:3)
如果您重建菜单,您的程序必须先跟踪“当前”项目的内容,并在通过getch
恢复其读取之前找到该项目。 getch
函数刷新屏幕,程序为getch
设置的位置成为明显的光标位置。
通常你会使用item_index
询问当前项目的菜单库,set_current_item
告诉菜单库光标所在的项目,但是可以进行调用到屏幕上的getch
“任意位置”。同样,如果重建菜单,则索引信息可能过时。
如果没有一些特定的样本程序,只能提供一般建议。