每5分钟执行一次代码,并在Ruby Shoes中显示进度条



我是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

最新更新