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