2016-08-11 13 views
0

私は、プログレスバーがttkを使って最大値に達したときに "done"をコンソールに表示する簡単なプログラムを作ろうとしています。Tkinter/TTK:ProgressBarが最大値に達したかどうかを調べるには?

例:私は現在のpython 3.5.2を使用してい

from tkinter import * 
import tkinter.ttk 

root = Tk() 

pb = tkinter.ttk.Progressbar(root, orient=HORIZONTAL, length=200, mode='determinate') 
pb.pack() 
pb.start() 

if pb['value'] == 100: #This isn't correct it's just an example. 
    pb.stop() 
    print("Done") 

root.mainloop() 

、私はそれらを理解するのは少し難しいですが、クラスとオブジェクトを避けるようにしてみてください。

答えて

1

あなたはこのように、100ミリ秒ごとまたはそう呼び出される関数を指示することにより、値を自分で更新することができますあなたを想定しているので

from tkinter import * 
import tkinter.ttk 

root = Tk() 

pb = tkinter.ttk.Progressbar(root, orient=HORIZONTAL, length=200, mode='determinate') 
pb.pack() 

def task(): 
    pb['value'] += 1 
    if pb['value'] >= 99: 
     print("Done") 
    else: 
     root.after(100, task) # Tell the mainloop to run "task()" again after 100ms 

# Tell the mainloop to run "task()" after 100ms 
root.after(100, task) 

root.mainloop() 

を通常は()確定モードのプログレスバーを起動しません。自分で値を更新する。不確定モードでは、バーが前後にバウンスして何かが起こっていることを暗示します。そのため、あなたはそれを開始する必要があります。

+0

ああ、私はif文が間違っていると確信していました。私はそれが機能を必要と推測した。手伝ってくれてありがとう。 – PyDer

関連する問題