import PySimpleGUI as sg
import subprocess
"""
コンボでフォルダを登録開く
"""
DESKTOP = r"C:\Users\yoshi\Desktop"
layout = [[sg.Combo(sorted(sg.user_settings_get_entry('-folder_path-', [])), default_value=sg.user_settings_get_entry('-last_folder_path-', ''), size=(50, 1), key='-FOLDER_PATH-', expand_x=True),
sg.FolderBrowse('Select', initial_folder=DESKTOP), sg.B('Open')],
[sg.Button('登録', bind_return_key=True), sg.Button('Cancel'), sg.Button('Settings')]]
window = sg.Window('Filename Chooser With History', layout, resizable=True, keep_on_top=True)
while True:
event, values = window.read()
if event in (sg.WIN_CLOSED, 'Cancel'):
break
if event == '登録':
# If OK, then need to add the filename to the list of files and also set as the last used filename
sg.user_settings_set_entry('-folder_path-', list(set(sg.user_settings_get_entry('-folder_path-', []) + [values['-FOLDER_PATH-'], ])))
sg.user_settings_set_entry('-last_folder_path-', values['-FOLDER_PATH-'])
print(values['-FOLDER_PATH-'])
# elif event == 'Clear History':
# sg.user_settings_set_entry('-folder_path-', [])
# sg.user_settings_set_entry('-last_folder_path-', '')
# window['-FOLDER_PATH-'].update(values=[], value='')
elif event == 'Open':
folder_path = values['-FOLDER_PATH-'].replace('/', '\\')
subprocess.run(['explorer', folder_path])
# 設定ファイル(json)を開く(日本語文字化けしている)
elif event == 'Settings':
settings_path = sg.user_settings_filename()
subprocess.run(['explorer', settings_path])
print(settings_path)
window.close()