47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
import PySimpleGUI as sg
|
|
|
|
"""
|
|
Demo - Basic window design pattern
|
|
* Creates window in a separate function for easy "restart"
|
|
* Saves theme as a user variable
|
|
* Puts main code into a main function so that multiprocessing works if you later convert to use
|
|
|
|
Copyright 2020 PySimpleGUI.org
|
|
"""
|
|
|
|
|
|
# ------------------- Create the window -------------------
|
|
def make_window():
|
|
# Set theme based on previously saved
|
|
sg.theme(sg.user_settings_get_entry('theme', None))
|
|
|
|
# ----- Layout & Window Create -----
|
|
layout = [[sg.T('This is your layout')],
|
|
[sg.OK(), sg.Button('Theme', key='-THEME-'), sg.Button('Exit')]]
|
|
|
|
return sg.Window('Pattern for theme saving', layout)
|
|
|
|
|
|
# ------------------- Main Program and Event Loop -------------------
|
|
|
|
def main():
|
|
window = make_window()
|
|
|
|
while True:
|
|
event, values = window.read()
|
|
if event == sg.WINDOW_CLOSED or event == 'Exit':
|
|
break
|
|
if event == '-THEME-': # Theme button clicked, so get new theme and restart window
|
|
ev, vals = sg.Window('Choose Theme', [[sg.Combo(sg.theme_list(), k='-THEME LIST-'), sg.OK(), sg.Cancel()]]).read(close=True)
|
|
if ev == 'OK':
|
|
window.close()
|
|
sg.user_settings_set_entry('theme', vals['-THEME LIST-'])
|
|
window = make_window()
|
|
|
|
window.close()
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|
|
|