前提・実現したいこと
tkinterでボタンとラベルを表示。
ボタンをクリックで「フォルダを選択」ダイアログを表示して選択したフォルダ名をラベルに表示したい。
発生している問題・エラーメッセージ
ダイアログ上でフォルダの選択操作をした後にダイアログが閉じると、ボタンが押下された状態のまま戻らなくなります。
(ボタンは凹んだままでももう一度クリックすると再度ダイアログを表示できます)
何が問題なのかわかりません。どなたかご助力お願いします。
該当のソースコード
import tkinter as TK import tkinter.filedialog as TKFDL def Button_act(evt, lbl): dirpath = TKFDL.askdirectory() lbl.configure(text = dirpath) # ------------------------------------------ root = TK.Tk() button1 = TK.Button(root, text = "push") button1.pack() label1 = TK.Label(root, text = "未選択") label1.pack() button1.bind("<Button-1>", lambda evt: Button_act(evt, label1)) root.mainloop()
試したこと
・[dirpath = TKFDL.askdirectory()]の部分をコメントアウトして、変数dirpathに適当な文字列を代入する処理に置き換えると
問題は起こらなくなります。
・Pycharmのデバッグ実行でトレースしてみると[button1.bind・・・]の行まで戻った後に
tkinter_init_.py内のmainloop関数がコールされたところでボタンの表示が更新、以後押されたままになっています。
補足情報(FW/ツールのバージョンなど)
OS:Windows10
Python 3.7.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/11 04:10