New demo - restart a window(recreates a window)
This commit is contained in:
parent
7a1fcc10be
commit
1b1ca99275
|
@ -0,0 +1,49 @@
|
|||
import PySimpleGUI as sg
|
||||
|
||||
"""
|
||||
Demo Restart Window (sorta reopen)
|
||||
|
||||
Once a window is closed, you can't do anything with it. You can't read it. You can't "re-open" it.
|
||||
The only choice is to recreate the window. It's important that you use a "Fresh Layout" every time.
|
||||
You can't pass the same layout from one indow to another. You will get a popup error infomrning you
|
||||
that you've attempted to resuse a layout.
|
||||
|
||||
The purpose of this demo is to show you the simple "make window" design pattern. It simply makes a
|
||||
window using a layout that's defined in that function and returns the Window object. It's not a bad
|
||||
way to encapsulate windows if your applcation is gettinga little larger than the typical small data
|
||||
entry window.
|
||||
|
||||
Copyright 2020 PySimpleGUI.org
|
||||
"""
|
||||
|
||||
|
||||
def make_window():
|
||||
"""
|
||||
Defines a window layout and createws a indow using this layout. The newly made Window
|
||||
is returned to the caller.
|
||||
|
||||
:return: Window that is created using the layout defined in the function
|
||||
:rtype: Window
|
||||
"""
|
||||
layout = [[sg.Text('My Window')],
|
||||
[sg.Input(key='-IN-'), sg.Text(size=(12, 1), key='-OUT-')],
|
||||
[sg.Button('Go'), sg.Button('Exit')]]
|
||||
|
||||
return sg.Window('Window Title', layout)
|
||||
|
||||
|
||||
def main():
|
||||
window = make_window()
|
||||
|
||||
while True: # Event Loop
|
||||
event, values = window.read()
|
||||
print(event, values)
|
||||
if event == sg.WIN_CLOSED or event == 'Exit':
|
||||
window.close()
|
||||
window = make_window()
|
||||
elif event == 'Go':
|
||||
window['-OUT-'].update(values['-IN-'])
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
Loading…
Reference in New Issue