New Demo - Combo File Chooser with history and clear button.
This commit is contained in:
parent
49bb18e496
commit
44c020324a
|
@ -0,0 +1,44 @@
|
|||
import PySimpleGUI as sg
|
||||
|
||||
"""
|
||||
Demo Combo File Chooser - with clearable history
|
||||
|
||||
This is a design pattern that is very useful for programs that you run often that requires
|
||||
a filename be entered. You've got 4 options to use to get your filename with this pattern:
|
||||
1. Copy and paste a filename into the combo element
|
||||
2. Use the last used item which will be visible when you create the window
|
||||
3. Choose an item from the list of previously used items
|
||||
4. Browse for a new name
|
||||
|
||||
To clear the list of previous entries, click the "Clear History" button.
|
||||
|
||||
The history is stored in a json file using the PySimpleGUI User Settings APIs
|
||||
|
||||
The code is as sparse as possible to enable easy integration into your code.
|
||||
|
||||
Copyright 2021 PySimpleGUI
|
||||
"""
|
||||
|
||||
|
||||
|
||||
layout = [[sg.Combo(sg.user_settings_get_entry('-filenames-', []), default_value=sg.user_settings_get_entry('-last filename-', ''), size=(50, 1), key='-FILENAME-'), sg.FileBrowse(), sg.B('Clear History')],
|
||||
[sg.Button('Ok'), sg.Button('Cancel')]]
|
||||
|
||||
window = sg.Window('Filename Chooser With History', layout)
|
||||
|
||||
while True:
|
||||
event, values = window.read()
|
||||
|
||||
if event in (sg.WIN_CLOSED, 'Cancel'):
|
||||
break
|
||||
if event == 'Ok':
|
||||
# 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('-filenames-', list(set(sg.user_settings_get_entry('-filenames-', []) + [values['-FILENAME-'], ])))
|
||||
sg.user_settings_set_entry('-last filename-', values['-FILENAME-'])
|
||||
break
|
||||
elif event == 'Clear History':
|
||||
sg.user_settings_set_entry('-filenames-', [])
|
||||
sg.user_settings_set_entry('-last filename-', '')
|
||||
window['-FILENAME-'].update(values=[], value='')
|
||||
|
||||
window.close()
|
Loading…
Reference in New Issue