import PySimpleGUI as sg

sg.ChangeLookAndFeel('GreenTan')

col1 = sg.Column([[sg.Text('in pane1', text_color='blue')],
                  [sg.T('Pane1')],
                  [sg.T('Pane1')],
                  ])
col2 = sg.Column([[sg.Text('in pane2', text_color='red')],
                  [sg.T('Pane2')],
                  [sg.Input(key='_IN2_', do_not_clear=True)],
                  [sg.T('Pane2')],
                  [sg.T('Pane2')],
                  ], key='_COL2_', visible=False)
col3 = sg.Column([[sg.Text('in pane 4', text_color='green')],
                  [sg.In(key='_IN3_', enable_events=True, do_not_clear=True)],
                  ], key='_COL3_', visible=False)
col4 = sg.Column([[sg.Text('Column 4', text_color='firebrick')],
                  [sg.In()],
                  ], key='_COL4_')
col5 = sg.Column([[sg.Frame('Frame', [[sg.Text('Column 5', text_color='purple')],
                  [sg.In()],
                  ])]])

layout = [ [sg.Text('Click'), sg.Text('', key='_OUTPUT_')],
           [sg.Button('Remove'), sg.Button('Add')],
           [sg.Pane([col5, sg.Column([[sg.Pane([col1, col2, col4], handle_size=15, orientation='v',  background_color='red', show_handle=True, visible=True, key='_PANE_', border_width=0,  relief=sg.RELIEF_GROOVE),]]),col3 ], orientation='h', background_color=None, size=(160,160), relief=sg.RELIEF_RAISED, border_width=0)]
        ]

window = sg.Window('Window Title', default_element_size=(15,1), resizable=True, border_depth=5).Layout(layout)

while True:             # Event Loop
    event, values = window.Read()
    print(event, values)
    if event is None or event == 'Exit':
        break
    if event == 'Remove':
        window.Element('_COL2_').Update(visible=False)
        window.Element('_COL3_').Update(visible=False)
    elif event == 'Add':
        window.Element('_COL2_').Update(visible=True)
        window.Element('_COL3_').Update(visible=True)
    window.Element('_IN2_').Update(values['_IN3_'])

window.Close()