我想创建一个进度条来指示Ruby批处理作业的状态。

我已经阅读了一些关于使用(n)curses的 教程 / ,其中没有一个特别有助于解释如何在终端中创建“动画”进度条或使用带有Ruby curses。

我已经知道使用一个单独的线程来监视给定作业的进度,我只是不确定如何继续绘制进度条。


更新

ProgressBar课程非常直接,完美地解决了我的问题。

===============>>#1 票数:19 已采纳

您可以从Ruby / ProgressBar库中获取一些实现想法,它会生成文本进度条。 几个月前我偶然发现了它,但没有使用它。

===============>>#2 票数:4

我个人认为诅咒在这种情况下是矫枉过正的。 虽然curses lib很好(而且我经常自己使用它),但每次我不需要12个月就会重新学习PITA,这必然是界面设计糟糕的标志。

如果由于某种原因你不能继续使用进度条lib,Joey建议你自己推出并在相当免费的许可下发布它以获得即时的荣誉:)

===============>>#3 票数:4

非常迟到的回答和抱歉自我推销,但是我创建了图书馆,以显示终端的进展。

===============>>#4 票数:2

在Windows上,curses开箱即用,ncurses没有,而对于进度条,curses应该足够了。 所以,使用curses而不是ncurses。

此外,curses和ncurses都是围绕c库的晶圆薄包装 - 这意味着你并不真正需要特定于Ruby的教程。

但是,在PickAxe站点上,您可以下载该书的所有代码示例。 文件“ex1423.rb”包含一个演奏Pong的curses演示 - 这应该会为您提供足够的材料来帮助您前进。

  ask by Jake McGraw translate from so

未解决问题?本站智能推荐:

2回复

如何使用Ruby强制Curses更新

我创建了一个主窗口win : 然后,有时我需要创建一个覆盖主要窗口的消息窗口。 关闭消息窗口后,我刷新了win : 但是除非我使用以下命令在主窗口中进行任何更改: refresh不会重绘窗口。 有没有办法强制重画窗口?
1回复

如何在Ruby中正确使用Curses :: KEY_BACKSPACE

假设我有以下代码: 当我按退格键时,得到以下输出: 预期产量: 为什么? 我究竟做错了什么? 我该如何解决? 提前致谢。
1回复

ruby curses:如何使用ctrl / meta键

我正在尝试Curses.getchr ,但是没有捕获Ctrl + s之类的键,是否有任何库可以让我捕获它们,而且最好是直观/易读的东西
2回复

学习Ruby Curses

有没有人知道有关使用Curses学习Ruby的任何好教程? 我似乎无法找到一个,而且文档很模糊。 我之前从未使用过诅咒所以我真的不太了解它。
2回复

如何在Ruby中轻松设置curses窗口背景颜色?

下面的ruby代码通过Curses打印两个窗口(重叠)。 第一个“边框”窗口以黑色/青色打印,“内容”窗口以青色打印蓝色。 内容窗口仅显示打印文本的背景色。 内容窗口的其余部分保持黑色。 ruby dox描述了使用color_set , bkgd或bkgdset方法处理窗口背景的方法
2回复

如何使用curses库清除屏幕的前两行?

如何使用curses库清除屏幕的前两行? 我看到有一个deleteln()命令,但是它只清除光标下面的行。 另外,第二个问题,命令clear()清除整个屏幕?
1回复

使用grep从命令行程序输出的固定文本(curses?)

我有一个命令行程序,该程序将定期打印语句(例如“ 5%完成”)以及其他无关的语句。 我想将此输出通过管道传递到grep,使用它选择进度条行,并将它们全部显示在一行中(即,将行重写到位)。 即写: 并获得随着时间变化的输出顺序: 。 。 。 而不是这样:
1回复

在调用系统命令后,在unix平台上使用curses检测C ++中的箭头键输入无效

我有一个应用程序,用户输入数据,需要能够使用箭头键在屏幕上移动。 现在我已经使用了curses库,但在调用系统命令后检测到箭头时出现问题 在调用此命令之前,我已经能够检测到它们。 但之后,即使在尝试再次使用后再打开键盘之后 它不起作用。 有什么建议么? 谢谢:)
1回复

如果在curses上,用multiple替换switch

我通过教程学习curses库,并且我已经在curses教程中用多个if替换了一个switch语句(开关部分仍在评论中),因为我更好地理解if语句我的问题是现在每次我按一个键,之前输入关键是在新的之前使用,什么是错的?
1回复

Ruby诅咒颜色

如何使用Ruby的默认Curses库获取颜色? 所以类似于: 效果很好。 在浅灰色的背景上给出一个漂亮的黑色。 但是这个: 显示: 你好! ^ [[0米^ [[30;!47mHello ^ [0米 最终,我需要颜色: 如何捕获Ruby中的