さて、Shoesの多くのことについてはよくわかりませんが、試行錯誤のアプローチでは、これまでのところ失敗しています。
ある種の計算を行うクラスがあり、時間がかかります。進行状況バーを表示して、終了時にユーザーが確認できるようにします。私の計算集約型の方法では、ブロックが渡された場合、その完了率が得られます。
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
これが私がShoesで言いたいことです:
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メソッド; 何も正しく機能していないようです。
たぶん、私はプログレスバーを本来の使用方法で使用していません。それではまた、プログレスバーは他に何のためにあるでしょうか?;-)