0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SimpleGUIのFileBrowseで一度選択したフォルダのパスをクリアする

Last updated at Posted at 2021-11-03

#背景
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

上の二つのコードをつなげて実行すると以下のウィンドウが出てきます。
image.png
selectボタンを押すと以下のようにファイルのパスを選択できます。
image.png
submitボタンを押すと以下のようにファイルのパスがプリントされます。
image.png
cleartボタンを押してからもう一度submitボタンを押すと以下のようにファイルのパスがクリアされます。
image.png

#ポイント
ポイントはsg.Input()のkey=input_pathをクリアするというコードにしたところ。何故だかわからなかったのですがsg.FileBrowse()のkey=input_path2をクリアしようとするとうまくいきませんでした。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?