お願いしたいこと
PythonでTkinterのアプリを作っていますが、
プログレスバーの非表示がうまくできません。
以下のエラーメッセージが発生しています。
変数のやり取りがうまくできていないか
ウインドウの更新がうまくできていないのかと思い、
色々試してみましたが、うまくいきません、、。
どなたかお助け願えないでしょうか、、。
宜しくお願い申し上げます。
発生しているエラーメッセージ
UnboundLocalError: local variable 'pbar2' referenced before assignment
該当のソースコード
Python
1from time import sleep 2import tkinter as tk 3import tkinter.ttk as ttk 4 5"""【関数定義】******************************""" 6# プログレスバー 7def progressbar(display): 8 if display : 9 pbar2 = ttk.Progressbar( 10 root, 11 orient="horizontal", 12 length=200, 13 mode='indeterminate') 14 pbar2.configure(maximum=10, value=0) 15 pbar2.grid(row=6, column=0, columnspan=2, padx=5, pady=5, sticky=tk.W+tk.E) 16 # プログレスバースタート 17 pbar2.start() 18 print("start") 19 else: 20 # プログレスバーストップ 21 pbar2.grid_remove() 22 print("stop") 23 24# ボタンアクション 25def pushed(self): 26 progressbar(True) 27 #ここで,valueにEntryの中身が入る 28 urlvalue = self.get() 29 """ここで重い処理をする""" 30 sleep(5) 31 print("complet") 32 """****************""" 33 progressbar(False) 34 35def main(): 36 # メインウィンドウ作成 37 global root 38 root = tk.Tk() 39 # メインウィンドウのタイトルを変更 40 root.title("Price Checker") 41 # メインウィンドウを640x480にする 42 root.geometry("270x280") 43 # メインウインドウのサイズ固定 44 root.resizable(0,0) 45 46 #ラベルを追加 label = tk.Label(window, param1=value, param2=value...) 47 urlLabel = tk.Label(root, text="検索URL") 48 #表示 49 urlLabel.grid(row=0, column=0, columnspan=2, padx=5, pady=5, sticky=tk.W+tk.E) 50 #URL入力欄 51 urlEditBox = tk.Entry() 52 urlEditBox.grid(row=1, column=0, columnspan=2, padx=5, pady=5, sticky=tk.W+tk.E) 53 54 #ラベルを追加 label = tk.Label(window, param1=value, param2=value...) 55 lowpriceLabel = tk.Label(root, text="最低価格") 56 #表示 57 lowpriceLabel.grid(row=2, column=0, padx=5, pady=5) 58 #最低価格入力欄 59 lowprice = tk.Entry() 60 lowprice.grid(row=3, column=0, padx=5, pady=5) 61 62 #ラベルを追加 label = tk.Label(window, param1=value, param2=value...) 63 highpriceLabel = tk.Label(root, text="最低価格") 64 #表示 65 highpriceLabel.grid(row=2, column=1, padx=5, pady=5) 66 #最低価格入力欄 67 highprice = tk.Entry() 68 highprice.grid(row=3, column=1, padx=5, pady=5) 69 70 #ボタンを追加 71 submitbutton = tk.Button(root, text=" 実行 ", command= lambda : pushed(urlEditBox)) 72 #表示 73 submitbutton.grid(row=4, column=0, columnspan=2, pady=10) 74 75 # ユーザーフォーム実行 76 root.mainloop() 77 78if __name__ == "__main__": 79 main() 80 81
補足情報
Python3.7です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/03 06:09