42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
|
import PySimpleGUI as sg
|
||
|
|
||
|
"""
|
||
|
Demo - Changing your window's theme at runtime
|
||
|
* Create your window using a "window create function"
|
||
|
* When your window's theme changes, close the window, call the "window create function"
|
||
|
|
||
|
Copyright 2021 PySimpleGUI
|
||
|
"""
|
||
|
|
||
|
|
||
|
# ------------------- Create the window -------------------
|
||
|
def make_window(theme=None):
|
||
|
if theme:
|
||
|
sg.theme(theme)
|
||
|
# ----- Layout & Window Create -----
|
||
|
layout = [[sg.T('This is your layout')],
|
||
|
[sg.Button('Ok'), sg.Button('Change Theme'), sg.Button('Exit')]]
|
||
|
|
||
|
return sg.Window('Pattern for changing theme', 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 == 'Change Theme': # Theme button clicked, so get new theme and restart window
|
||
|
event, values = sg.Window('Choose Theme', [[sg.Combo(sg.theme_list(), readonly=True, k='-THEME LIST-'), sg.OK(), sg.Cancel()]]).read(close=True)
|
||
|
print(event, values)
|
||
|
if event == 'OK':
|
||
|
window.close()
|
||
|
window = make_window(values['-THEME LIST-'])
|
||
|
|
||
|
window.close()
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
main()
|