import PySimpleGUI as sg
layout = [[sg.Button('My first Button!'), sg.Button('Disabled Button!', disabled=True)]]
import PySimpleGUI as sg
layout = [[sg.ButtonMenu('My first ButtonMenu!', ['Menu', ['Menu item 1', 'Menu item 2']])]]
Canvas
import PySimpleGUI as sg
layout = [[sg.Canvas(background_color='red', size=(100, 100))]]
Checkbox
import PySimpleGUI as sg
layout = [[sg.Checkbox('My first Checkbox!', default=True), sg.Checkbox('My second Checkbox!'), sg.Checkbox('Disabled Checkbox!', disabled=True)]]
Column
import PySimpleGUI as sg
column_layout1 = [[sg.Button('My first Button!'), sg.Checkbox('My first Checkbox!')],
[sg.Button('Another Button.')]]
column_layout2 = [[sg.Button('My third Button!'), sg.Checkbox('My second Checkbox!')]]
layout = [[sg.Column(column_layout1, element_justification='center'), sg.Column(column_layout2, element_justification='center')]]
Combo
import PySimpleGUI as sg
layout = [[sg.Combo(['Choice 1', 'Choice 2', 'Choice 3', 'Choice 4'], default_value='Choice 3')]]
Frame
import PySimpleGUI as sg
frame_layout2 = [[sg.Text('Py')],
[sg.Text('Simple')],
[sg.Text('GUI')]]
frame_layout1 = [[sg.Button('My Button!'), sg.Frame('Frame 2', frame_layout2, element_justification='center')]]
layout = [[sg.Frame('Frame 1', frame_layout1)]]
Graph
import PySimpleGUI as sg
layout = [[sg.Graph((800, 400), (-400, -200), (400, 200), background_color='white', key='-GRAPH-')]]
# Window
window = sg.Window(title='Graph Element', layout=layout)
# Allows you to modify the graph before a window.read() call
window.finalize()
# Add text to the graph
window['-GRAPH-'].draw_text('PySimpleGUI is easy!', (-200, 100), font=14)
HorizontalSeperator
import PySimpleGUI as sg
layout = [[sg.Button('My first Button!')],
[sg.HorizontalSeparator(color='red')],
[sg.Checkbox('My first Checkbox!')]]
Image
import PySimpleGUI as sg
layout = [[sg.Image('python.png')]]
import PySimpleGUI as sg
layout = [[sg.Input(default_text='Hello! o/')]]
Listbox
import PySimpleGUI as sg
layout = [[sg.Listbox(["1", "2", "3", "4", "5"], size=(10, 2))]]
import PySimpleGUI as sg
menu_def = [['&File', ['!&Open', '&Save::savekey', '---', '&Properties', 'E&xit']], ['&Help', '&About...']]
layout = [[sg.Menu(menu_def)],
[sg.Text('Your window!', size=(30, 5))]]
import PySimpleGUI as sg
menu_def = [['&File', ['!&Open', '&Save::savekey', '---', '&Properties', 'E&xit']], ['&Help', '&About...']]
layout = [[sg.MenubarCustom(menu_def)],
[sg.Text('Your window!', size=(30, 5))]]
Multiline
import PySimpleGUI as sg
layout = [[sg.Multiline(default_text='This\nelement\nhas\nmultiple\nlines!', size=(None, 3))]]
Output
import PySimpleGUI as sg
layout = [[sg.Output(size=(30, 10)), sg.Button('Hi!', k='-BUTTON1-')]]
# Window
window = sg.Window(title='Output Element', layout=layout)
# Event loop
while True:
event, values = window.read()
if event == sg.WIN_CLOSED:
break
# Prints get redirected to the Output Element
print(event)
import PySimpleGUI as sg
layout = [[sg.OptionMenu(['Option 1', 'Option 2', 'Option 3', 'Option 4'], default_value='Option 2')]]
Pane
import PySimpleGUI as sg
column_layout1 = [[sg.Button('My first Button!'), sg.Checkbox('My first Checkbox!')],
[sg.Button('Another Button.')]]
column_layout2 = [[sg.Button('My third Button!'), sg.Checkbox('My second Checkbox!')]]
layout = [[sg.Pane([sg.Column(column_layout1), sg.Column(column_layout2)], size=(300, 200))]]
ProgressBar
import PySimpleGUI as sg
layout = [[sg.ProgressBar(10, key='-PROGRESS_BAR-'), sg.Button('Update!', key='-UPDATE-')]]
count = 0
window = sg.Window(title='ProgressBar Element', layout=layout, resizable=True)
while True:
event, values = window.read()
if event == sg.WIN_CLOSED:
break
elif event == '-UPDATE-':
count += 1
window['-PROGRESS_BAR-'].update(current_count=count)
Push
import PySimpleGUI as sg
layout = [[sg.Button('My first Button!'), sg.Push(background_color='orange'), sg.Checkbox('My first Checkbox!')]]
Radio
import PySimpleGUI as sg
layout = [[sg.Radio('My first Radio!', group_id=1, default=True), sg.Radio('My second Radio!', group_id=1), sg.Radio('Disabled Radio!', group_id=1, disabled=True)]]
Sizegrip
import PySimpleGUI as sg
layout = [[sg.Button('My first Button!'), sg.Checkbox('My first Checkbox!')],
[sg.VPush()],
[sg.Push(), sg.Sizegrip()]]
Sizer
import PySimpleGUI as sg
layout = [[sg.Yes(), sg.Sizer(200, 300), sg.No()]]
Slider
import PySimpleGUI as sg
layout = [[sg.Slider((1, 10), orientation='horizontal')]]
Spin
import PySimpleGUI as sg
layout = [[sg.Spin([1, 2, 3, 4, 5], size=(10, 1))]]
StatusBar
import PySimpleGUI as sg
layout = [[sg.StatusBar('Online', text_color='#c2ffa7')]]
Tab/TabGroup
import PySimpleGUI as sg
tab_layout1 = [[sg.Button('My first Button!'), sg.Checkbox('My first Checkbox!')],
[sg.Button('Another Button.')]]
tab_layout2 = [[sg.Button('My third Button!'), sg.Checkbox('My second Checkbox!')]]
layout = [[sg.TabGroup([[sg.Tab("Tab 1", tab_layout1), sg.Tab("Tab 2", tab_layout2)]])]]
Table
import PySimpleGUI as sg
layout = [[sg.Table([["", "ABC", "DEF"], ["GHI", "JKL", "MNO"], ["PQRS", "TUV", "WXYZ"]], headings=["1, 4, 7", "2, 5, 8", "3, 6, 9"])]]
Text
import PySimpleGUI as sg
layout = [[sg.Text("Text!", font=("Calibri", 24))]]
Titlebar
import PySimpleGUI as sg
layout = [[sg.Titlebar("My custom Titlebar!")],
[sg.Button("My first button!")]]
Tree/TreeData
import PySimpleGUI as sg
treedata = sg.TreeData()
treedata.Insert("", '_A_', 'A', [1, 2, 3])
treedata.Insert("", '_B_', 'B', [4, 5, 6])
treedata.Insert("_A_", '_A1_', 'A1', ['can', 'be', 'anything'])
layout = [[sg.Tree(treedata, headings=["X", "Y", "Z"])]]
VerticalSeperator
import PySimpleGUI as sg
layout = [[sg.Button('My first Button!'), sg.VerticalSeparator(color='red'), sg.Checkbox('My first Checkbox!')]]
VPush
import PySimpleGUI as sg
layout = [[sg.Button('My first Button!')],
[sg.VPush(background_color='orange')],
[sg.Checkbox('My first Checkbox!')]]