PySimpleGUI/DemoPrograms/Demo_Design_Pattern_Multipl...

43 lines
1.6 KiB
Python
Raw Normal View History

import PySimpleGUI as sg
"""
Demo - 2 simultaneous windows using read_all_window
Window 1 launches window 2
BOTH remain active in parallel
Both windows have buttons to launch popups. The popups are "modal" and thus no other windows will be active
Copyright 2020 PySimpleGUI.org
"""
def make_win1():
layout = [[sg.Text('This is the FIRST WINDOW'), sg.Text(' ', k='-OUTPUT-')],
[sg.Text()],
[sg.Button('Launch 2nd Window'), sg.Button('Popup'), sg.Button('Exit')]]
return sg.Window('Window Title', layout, location=(800,600), finalize=True)
def make_win2():
layout = [[sg.Text('The second window')],
[sg.Input(key='-IN-')],
[sg.Text(size=(25,1), k='-OUTPUT-')],
[sg.Button('Show'), sg.Button('Popup'), sg.Button('Exit')]]
return sg.Window('Second Window', layout, finalize=True)
window1, window2 = make_win1(), None # start off with 1 window open
while True: # Event Loop
window, event, values = sg.read_all_windows()
if event == sg.WIN_CLOSED or event == 'Exit':
window.close()
if window == window2: # if closing win 2, mark as closed
window2 = None
elif window == window1: # if closing win 1, exit program
break
elif event == 'Popup':
sg.popup('This is a BLOCKING popup','all windows remain inactive while popup active')
elif event == 'Launch 2nd Window' and not window2:
window2 = make_win2()
elif event == 'Show':
window['-OUTPUT-'].update(f'You enetered {values["-IN-"]}')
window.close()