好的,所以我不太确定鞋子中的很多东西,但是到目前为止,我的反复试验方法让我在这方面失败了。
我有一个类进行某种需要一段时间的计算,我想抛出一个进度条供用户在它完成时查看。如果通过一个块,我的计算密集型方法会产生其完成百分比:
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
以下是我想在鞋子中说的话:
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
但这似乎不起作用。我尝试过使用/不使用窗口调用,我尝试过各种方式的 animate(),我什至尝试调用 Thread.new 并将它传递给窗口块,让它们通过 Shoes.APPS()[0].get 交谈/setPercent 方法;似乎没有什么能正常工作。
也许我没有按照预期的方式使用进度条。再说一遍,进度条还有什么用途?;-)