前提・実現したいこと
pythonとtkinterを用いて確定的なプログレスバーを作成しようと思いネット上から拾ってきたコード1を参考にしてコード2を作成しました。
コード1がボタンをクリックするたびにプログレスバーが進行するのに対しコード2はプログラム中の任意の点でプログレスバーが進行する様にしています。
発生している問題・エラーメッセージ
二つのコードで違う箇所は#進捗ボタン 以下の4行ほどですがコード1は実行した直後にプログレスバーが画面に出てくるのに対してコード2はforループが終わったタイミングかつプログレスバーが右端までいった状態で画面に出てきます。
コード1と同様にプログラムを実行した直後にプログレスバーを出現させ、かつforループが1進むごとにプログレスバーのメモリを増やすにはどのようにすればよろしいでしょうか?
該当のソースコード
コード1
python
1from tkinter import * 2from tkinter import ttk 3 4def button_click(): 5 pbval.set(pbval.get() + 1) 6 7 8if __name__ == '__main__': 9 root = Tk() 10 ttk.Style().theme_use('classic') 11 root.title('Progress') 12 root.columnconfigure(0, weight=1); 13 root.rowconfigure(0, weight=1); 14 15 # Frame 16 frame1 = ttk.Frame(root, padding=10) 17 frame1.grid(sticky=(N, W, S, E)) 18 frame1.columnconfigure(0, weight=1); 19 frame1.rowconfigure(0, weight=1); 20 21 # プログレスバー (確定的) 22 23 pbval = IntVar(value=0) 24 pb = ttk.Progressbar( 25 frame1, 26 orient=HORIZONTAL, 27 variable=pbval, 28 maximum=10, 29 length=200, 30 mode='determinate') 31 pb.grid(row=0, column=0, sticky=(N, E, S, W)) 32 33 # 進捗ボタン 34 button1 = ttk.Button( 35 frame1, text='OK', width=5, 36 command=button_click) 37 button1.grid(row=0, column=1, padx=5, sticky=(E)) 38 39 root.mainloop()
コード2
python
1from tkinter import * 2from tkinter import ttk 3import time 4 5def button_click(): 6 pbval.set(pbval.get() + 1) 7 8 9if __name__ == '__main__': 10 root = Tk() 11 ttk.Style().theme_use('classic') 12 root.title('Progress') 13 root.columnconfigure(0, weight=1); 14 root.rowconfigure(0, weight=1); 15 16 # Frame 17 frame1 = ttk.Frame(root, padding=10) 18 frame1.grid(sticky=(N, W, S, E)) 19 frame1.columnconfigure(0, weight=1); 20 frame1.rowconfigure(0, weight=1); 21 22 # プログレスバー (確定的) 23 24 pbval = IntVar(value=0) 25 pb = ttk.Progressbar( 26 frame1, 27 orient=HORIZONTAL, 28 variable=pbval, 29 maximum=10, 30 length=200, 31 mode='determinate') 32 pb.grid(row=0, column=0, sticky=(N, E, S, W)) 33 34 # 進捗ボタン 35 for i in range(10): 36 button_click() 37 time.sleep(1) 38 39 root.mainloop()
試したこと
補足情報(FW/ツールのバージョンなど)
回答3件
あなたの回答
tips
プレビュー