我是Ruby Shoes的新手。我正在做一个程序,每5分钟从互联网上获取一次信息。
我正在考虑使用红宝石鞋方法every()
。进度条将显示接近5分钟标记的程度,然后执行主代码,然后方法将等待5分钟再次循环。然而,使用此代码,程序将在300秒后等待进行第一次迭代,因此进度条在此之前不会显示。我想问你能不能给我一个解决这个问题的方法?
现在,我甚至想不出如何调整animate
来处理我的300秒,所以我必须设置every(100)
和animate(1)
,所以基本上每1:40分钟,而不是5分钟。
无论如何,我现在的首要任务是让进度条不仅在迭代过程中出现,而且在之前出现
抱歉发了这么长的邮件。这是我为进度条编写的伪代码,希望你能明白:
Shoes.app do
stack :margin => 0.1 do
title "Progress bar"
@p = progress :width => 1.0
every(100) do |p|
@animate = animate (1) do |i|
@p.fraction = (i % 100) / 100.0
@animate.stop if i > 99
end
#main codes go here
end
end
end
我是新手,还在学习。我感谢你的帮助!
我更改了您的代码,使其每10秒执行一次。您可以自己修改为每5分钟一次。试试看,稍后再感谢我;)
Shoes.app do
stack :margin => 0.1 do
title "Progress bar"
@p = progress :width => 1.0
@animate = animate (1) do |i|
@p.fraction = (i % 10) / 10.0
@animate.stop if @p.fraction > 0.9
end
every(10) do |p|
#main codes go here
end
end
end