好的,所以我不太确定鞋子里有很多东西,但到目前为止,我的试错方法在这个方面都没有让我失望.
我有一个类需要一段时间进行某种计算,我希望在完成时为用户提供一个进度条.如果传递一个块,我的计算密集型方法会产生完整百分比:
class MathyStuff
def initialize()
end
## Some expensive, time consuming method which yields it's percent complete
def expensiveMethod(&block)
0.upto(100) do |i|
0.upto(100000) do |j|
k = j;
end
yield i.to_f/100;
end
end
end
Run Code Online (Sandbox Code Playgroud)
这里要什么我喜欢的鞋说:
require 'MathyStuff.rb'
Shoes.app do
@myMathyStuff = MathyStuff.new();
button("Do expensive mathy thing...") do
window() do
@progress = progress();
@myMathyStuff.expensiveMethod() {|percent| @progress.fraction = percent;}
end
end
end
Run Code Online (Sandbox Code Playgroud)
但它似乎没有用.我已尝试使用/不使用窗口调用,我已尝试以各种方式使用animate(),我甚至尝试调用Thread.new并将其传递给窗口块,让它们通过Shoes.APPS()[0]进行交换./setPercent方法; 似乎没有什么工作正常.
也许我没有按照它的使用方式使用进度条.再说一次,进度条还有什么用呢?;-)