我无法弄清ruby/tk中的进度条是如何在不确定模式下工作的。如何在ruby/tk中使用进度条不确定?
我可以显示进度条,但不会移动。
一个例子,如果我只是用这条线在我的代码
progressBar.start
如果我只有该行的进度将展示动人的,因为它应该。
但是,如果我在它下面添加代码行,它将不会执行。我有一个印象,进度条的.start方法启动它,方法停止停止它,并在两者之间有应该执行的代码和进度条显示,直到它看到停止。
但如果我这样做
progressBar.start
# some code (a loop that takes a long while to execute)
progressBar.stop
没有beeing显示的进度,直到之间的代码完成?我以为这就是你想要进度条的原因?
我在这里不理解什么。
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
请添加运行一个完整的示例,并显示给问题你的问题。 – 2013-04-30 11:03:35
我敢打赌问题是在处理代码期间没有运行事件循环... – 2013-05-02 10:31:02