ruby/tk のプログレスバーが不確定モードでどのように機能するかわかりません。
プログレスバーを表示できますが、移動しません。
コードでこの行を使用する場合の例
progressBar.start
その行しかない場合、プログレスバーが表示され、必要に応じて移動します。
しかし、その下にコード行を追加すると、実行されません。プログレスバーの .start メソッドがそれを開始し、メソッド stop がそれを停止し、その間に実行すべきコードがあり、プログレスバーが停止するまで表示されるという印象を受けました。
しかし、私がこれを行うと
progressBar.start
# some code (a loop that takes a long while to execute)
progressBar.stop
間のコードが終了するまでプログレスバーは表示されませんか? それがプログレスバーが欲しかった理由だと思いましたか?
ここで何が理解できません。
Thx は役に立ちますが、なぜこれが機能しないのですか。それはただのばかげたテストです。しかし、私は実際のプログラムで似たようなことをしています。このコードを書いた場合、プログレスバーは正常に実行されず、代わりに悪魔の img ループが完了した後に実行されますか?
Dir.chdir("c:/temp")
bilder = Dir.glob("*.jpg")+
bilder = Dir.glob("*.png")+
bilder = Dir.glob("*.gif")
puts bilder
root = TkRoot.new { title 'Progressbar Demo' }
content = Tk::Frame.new(root) {}.grid(:sticky =>'new')
progress = Tk::Tile::Progressbar.new(content:mode=>'indeterminate':orient=>:horizontal)
progress.pack
Thread.new do
progress.start
i=0
while i < bilder.length
Devil.with_image(bilder[i]) do |img|
img.thumbnail2(150)
img.save("thumbnail_"+ bilder[i])
end
i=i+1
end
progress.stop
end
Tk.mainloop