Web Analytics Made Easy - Statcounter
Skip to content

Multiple Windows

There are numerous Demo Programs that show a multitude of techniques for running multiple windows in PySimpleGUI. Over the years these techniques have evolved. It's best to check with the Demo Propgrams as they are updated more frequently than this Cookbook.

This recipe is a design pattern for multiple windows where the first window is not active while the second window is showing. The first window is hidden to discourage continued interaction.

 PySimpleGUI The Complete Course Lesson 7 - Multiple Windows"""
import PySimpleGUI as sg

# Design pattern 1 - First window does not remain active

layout = [[ sg.Text('Window 1'),],
          [sg.Text('', key='_OUTPUT_')],
          [sg.Button('Launch 2')]]

win1 = sg.Window('Window 1', layout)
while True:
    ev1, vals1 = win1.Read(timeout=100)
    if ev1 == sg.WIN_CLOSED:

    if ev1 == 'Launch 2'  and not win2_active:
        win2_active = True
        layout2 = [[sg.Text('Window 2')],       # note must create a layout from scratch every time. No reuse

        win2 = sg.Window('Window 2', layout2)
        while True:
            ev2, vals2 = win2.Read()
            if ev2 == sg.WIN_CLOSED or ev2 == 'Exit':
                win2_active = False