1

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
4

1 に答える 1