#背景
SimpleGUIのFileBrowseでファイルのパスを入手、再度空白に戻すという操作を紹介します。
#コード紹介
コードは上半分でウィンドウレイアウト、下半分で挙動を定義しています。上半分のウィンドウレイアウトのコードは以下の通り。
demo1.py
import PySimpleGUI as sg
sg.theme('DarkTeal7')
layout = [[sg.Input(key="input_path"), sg.FileBrowse('Select', key='input_path2')],
[sg.Button('submit', key='submit'),sg.Button('clear', key='-clear-') ],
[sg.Output(size=(60,20))],
]
window = sg.Window('ファイル選択', layout)
残り半分のコード。右上の×ボタン、submitボタン、clearボタンの挙動を定義。(敢えてelseを使わずに記載しています。)
demo2.py
while True:
event, values = window.read()
if event == sg.WIN_CLOSED:
break
elif event == "-clear-" :
window['input_path'].update("")
elif event =='submit':
print('input_path:' + str(values['input_path']))
print('input_path2:' + str(values['input_path']))
window.close
上の二つのコードをつなげて実行すると以下のウィンドウが出てきます。
selectボタンを押すと以下のようにファイルのパスを選択できます。
submitボタンを押すと以下のようにファイルのパスがプリントされます。
cleartボタンを押してからもう一度submitボタンを押すと以下のようにファイルのパスがクリアされます。
#ポイント
ポイントはsg.Input()のkey=input_pathをクリアするというコードにしたところ。何故だかわからなかったのですがsg.FileBrowse()のkey=input_path2をクリアしようとするとうまくいきませんでした。