diff --git a/DemoPrograms/Demo_Layout_Extend.py b/DemoPrograms/Demo_Layout_Extend.py new file mode 100644 index 00000000..bd006955 --- /dev/null +++ b/DemoPrograms/Demo_Layout_Extend.py @@ -0,0 +1,33 @@ +import PySimpleGUI as sg + +""" + Demonstrates how to use the Window.layout_extend method. + Layouts can be extended at the Window level or within any container element such as a Column. + This demo shows how to extend both. + Note that while you can extend, add to, a layout, you cannot delete items from a layout. Of course you + can make them invisible after adding them. + + Copyright 2020 PySimpleGUI +""" + +layout = [ [sg.Text('My Window')], + [sg.Text('Click to add a row inside the frame'), sg.B('+', key='-B1-')], + [sg.Text('Click to add a row inside the Window'), sg.B('+', key='-B2-')], + [sg.Frame('Frame',[[sg.T('Frame')]], key='-COL1-')], + [sg.Input(key='-IN-'), sg.Text(size=(12,1), key='-OUT-')], + [sg.Button('Button'), sg.Button('Exit')] ] + +window = sg.Window('Window Title', layout) +i = 0 +while True: # Event Loop + event, values = window.read() + print(event, values) + if event in (None, 'Exit'): + break + if event == '-B1-': + window.extend_layout(window['-COL1-'], [[sg.T('A New Input Line'), sg.I(key=f'-IN-{i}-')]]) + i += 1 + if event == '-B2-': + window.extend_layout(window, [[sg.T('A New Input Line'), sg.I(key=f'-IN-{i}-')]]) + i += 1 +window.close() \ No newline at end of file