Ncurses:如何刷新菜单而不丢失当前位置?

2024-01-12

如何在不丢失当前位置的情况下重新加载菜单中的数据?

例如,当用户“选择”某个项目时,执行的操作会更改数据。 (更新项目、删除项目或向菜单添加新项目。)我想重新加载菜单,但仍将光标保留在刚刚选择的项目上。最好的方法是什么?


作为参考,这个问题似乎非常接近,但我不认为它涵盖了添加/删除问题:如何替换 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(使用前将#替换为@)

Ncurses:如何刷新菜单而不丢失当前位置? 的相关文章

随机推荐

  • 如何对像素数据进行位条纹?

    我有 3 个缓冲区 其中包含在 32 位处理器上运行的 R G B 位数据 我需要按以下方式组合三个字节 R 0 0b r1r2r3r4r5r6r7r8 G 0 0b g1g2g3g4g5g6g7g8 B 0 0b b1b2b3b4b5b6
  • Google MLKit 能够识别同一张脸吗?

    我正在考虑在我的 Android 应用程序中实现 MLKit 人脸识别库 我唯一不明白的是 如果可能的话 我如何比较两张照片并检测它们是否是同一个人 我已阅读这些指南 https firebase google com docs ml ki
  • 树菜单的acts_as_tree 与ancestry gem [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我想实现一个树形菜单 树形菜单的简单示例 http www treemenu net treemenu 3fr largetree html 在
  • 如何检查脚本是否通过 dofile() 包含或直接在 Lua 中运行? [复制]

    这个问题在这里已经有答案了 可能的重复 Lua 中的 main 函数 https stackoverflow com questions 4521085 main function in lua 在Python中 您可以很容易地检查脚本是否
  • Primefaces 日历不会在窗口旋转时重新调整其位置

    我正在努力解决移动设备 平板电脑 上呈现的网页上的 primefaces 日历问题 似乎由 primefaces 计算来显示弹出日历的 css 值不会在窗口旋转时重新计算 您需要再次单击它来重新计算 这是一个例子 I have my web
  • 使用 Oslo 和 M 有什么优势?您何时会使用它?

    在参加 Oslo M 的演讲后 我很难看出使用它相对于现有方法的优势以及它在什么情况下有用 我知道它很新 并非所有细节都已发布等 但有人可以给我一些优势以及您何时可以使用它吗 Thanks Alex 这个问题似乎有您正在寻找的答案 模型驱动
  • SwiftUI:minimumScaleFactor 未均匀应用于堆栈元素

    我有两段文本的水平堆栈 第二段以蓝色突出显示 它非常适合 iPhone XR 但在较小的设备 如 iPhone X 上时 文本不适合 我尝试通过使用minimumScaleFactor来缩放文本来解决这个问题 然而 SwiftUI 似乎决定
  • 重温PHP中如何从多维数组中删除重复值

    如何从 PHP 中的多维数组中删除重复值 初始数组 array 0 gt array following userid gt 88 1 gt array following userid gt 89 2 gt array following
  • 判断一系列日期是否覆盖一个区间

    我有两个对象日历 Calendar startCalendar new GregorianCalendar 2013 0 31 Calendar endCalendar new GregorianCalendar 我想知道上面列出的两个日期
  • HTTP 处理程序与 HTTP 模块

    有人能用不到两句话解释两者之间的区别吗 是的 我知道谷歌可以提供数百个答案 但不能提供二分之一的清晰句子 HttpHandler 是请求队列的去向 HttpModule是沿途的一个站
  • CodePipeline 构建规范和多个构建操作

    一个简单的构建规范 例如 version 0 2 phases install commands cd lambda src npm install aws cloudformation package template file lamb
  • mod_rewrite 的小问题

    我有一个分类广告网站 每个分类最初都是这样链接的 mydomain com ad php ad id Bmw M3 M tech 113620829 我应该使用什么 RewriteRule 来使此链接看起来像 mydomain com Bm
  • Node js 向 Gmail 发送会议/日历邀请

    我正在尝试使用 Node js 发送日历邀请 我已经尝试过 nodemailer 库 并且正在发送带有日历邀请的邮件 就像参考this https stackoverflow com questions 45097141 nodemaile
  • ASP.NET - Unity - 从外部配置文件读取配置部分

    我想将 Unity 集成到我的应用程序中 并且希望它使用外部配置文件 Unity初始化代码是 var fileMap new ExeConfigurationFileMap ExeConfigFilename unity config Sy
  • 将本地图像添加到 IJulia 笔记本

    如何将本地图像添加到 IJulia 笔记本 该图像与 IPYNB 文件位于同一本地网络文件夹中 该文件夹可通过符号链接访问 我尝试过相对文件名和绝对文件名 img src test png alt Image Test style widt
  • PHP 中变量周围的括号有什么作用?

    我在旧平台上使用 PHP 5 3 中的 ImageMagick 我偶然发现了一段代码 当变量周围使用括号时 该代码不起作用 但当删除这些括号时 该代码却起作用 变量两边的括号有什么作用 im new imagick im gt readIm
  • 在哪里可以找到 jdk 7 中的 jnlp api jar? [复制]

    这个问题在这里已经有答案了 可能的重复 在 JDK 1 7 中找不到 jnlp jar https stackoverflow com questions 10830317 cant find jnlp jar in jdk 1 7 对于j
  • 转换具有相同名称但不同扩展名的图像

    例如 我有两个文件 aaa jpg with cat aaa png with dog 正如您所看到的 尽管名称相同 但图像是不同的 我想将这些图像转换为一种格式 这项任务的基本尝试是 mogrify format jpg png 但由于显
  • 如何捕获flask_restful应用程序中引发的所有异常

    我确实有简单的 Restful 应用程序与 Flask Restful from flask import Flask from flask restful import Api app Flask name api Api app api
  • Ncurses:如何刷新菜单而不丢失当前位置?

    如何在不丢失当前位置的情况下重新加载菜单中的数据 例如 当用户 选择 某个项目时 执行的操作会更改数据 更新项目 删除项目或向菜单添加新项目 我想重新加载菜单 但仍将光标保留在刚刚选择的项目上 最好的方法是什么 作为参考 这个问题似乎非常接