New demo - restart a window(recreates a window)
This commit is contained in:
		
							parent
							
								
									7a1fcc10be
								
							
						
					
					
						commit
						1b1ca99275
					
				
					 1 changed files with 49 additions and 0 deletions
				
			
		
							
								
								
									
										49
									
								
								DemoPrograms/Demo_Window_Open_Multiple_Times.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								DemoPrograms/Demo_Window_Open_Multiple_Times.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -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…
	
	Add table
		Add a link
		
	
		Reference in a new issue