def main(): sg.ChangeLookAndFeel('GreenTan') # sg.SetOptions(element_padding=(0,0)) # ------ Menu Definition ------ # menu_def = [ ['&File', ['&Open', '&Save', '&Properties', 'E&xit']], [ '&Edit', ['&Paste', [ 'Special', 'Normal', ], 'Undo'], ], ['&Toolbar', ['Command &1', 'Command &2', 'Command &3', 'Command &4']], ['&Help', '&About...'], ] treedata = sg.TreeData() treedata.Insert( "", '_A_', 'Tree Item 1', [1, 2, 3], ) treedata.Insert( "", '_B_', 'B', [4, 5, 6], ) treedata.Insert( "_A_", '_A1_', 'Sub Item 1', ['can', 'be', 'anything'], ) treedata.Insert( "", '_C_', 'C', [], ) treedata.Insert( "_C_", '_C1_', 'C1', ['or'], ) treedata.Insert("_A_", '_A2_', 'Sub Item 2', [None, None]) treedata.Insert("_A1_", '_A3_', 'A30', ['getting deep']) treedata.Insert("_C_", '_C2_', 'C2', ['nothing', 'at', 'all']) for i in range(100): treedata.Insert('_C_', i, i, []) frame1 = [ [sg.Input('Input Text', size=(250, 35)), sg.Stretch()], [ sg.Multiline(size=(250, 75), default_text='Multiline Input'), sg.MultilineOutput(size=(250, 75), default_text='Multiline Output') ], ] frame2 = [ [sg.Listbox(['Listbox 1', 'Listbox 2', 'Listbox 3'], size=(200, 85))], [ sg.Combo(['Combo item 1', 'Combo item 2', 'Combo item 3'], size=(200, 35)) ], [sg.Spin([1, 2, 3], size=(40, 30))], ] frame3 = [ [sg.Checkbox('Checkbox1', True), sg.Checkbox('Checkbox1')], [ sg.Radio('Radio Button1', 1), sg.Radio('Radio Button2', 1, default=True), sg.Stretch() ], ] frame4 = [ [ sg.Slider(range=(0, 100), orientation='v', size=(3, 30), default_value=40), sg.Dial(range=(0, 100), tick_interval=50, size=(150, 150), default_value=40), sg.Stretch() ], ] matrix = [[str(x * y) for x in range(4)] for y in range(3)] frame5 = [ [ sg.Table(values=matrix, max_col_width=25, auto_size_columns=True, display_row_numbers=True, change_submits=False, bind_return_key=True, justification='right', num_rows=8, alternating_row_color='lightblue', key='_table_', text_color='black'), sg.Tree(data=treedata, headings=['col1', 'col2', 'col3'], change_submits=True, auto_size_columns=True, num_rows=10, col0_width=10, key='_TREE_', show_expanded=True, size=(200, 150)), sg.Stretch() ], ] graph_elem = sg.Graph((880, 150), (0, 0), (600, 300), key='+GRAPH+') frame6 = [ [graph_elem, sg.Stretch()], ] tab1 = sg.Tab('Graph Number 1', frame6) tab2 = sg.Tab('Graph Number 2', [[]]) layout = [ [sg.Menu(menu_def)], [ sg.Image(data_base64=logo), sg.Frame('Input Text Group', frame1, title_color='red'), sg.Stretch() ], [ sg.Frame('Multiple Choice Group', frame2, title_color='green'), sg.Frame('Binary Choice Group', frame3, title_color='purple'), sg.Frame('Variable Choice Group', frame4, title_color='blue'), sg.Stretch() ], [ sg.Frame('Structured Data Group', frame5, title_color='red'), ], # [sg.Frame('Graphing Group', frame6)], [sg.TabGroup([[tab1, tab2]])], [ sg.ProgressBar(max_value=600, start_value=400, size=(600, 25), key='+PROGRESS+'), sg.Stretch(), sg.ButtonMenu('&Menu', ['Menu', ['&Pause Graph', 'Menu item']], key='_MENU_'), sg.Button('Button'), sg.Button('Exit') ], ] window = sg.Window('Window Title', font=('Helvetica', 13), default_button_element_size=(100, 30), auto_size_buttons=False, default_element_size=(200, 22)).Layout(layout).Finalize() graph_elem.DrawCircle((200, 200), 50, 'blue') i = 0 graph_paused = False while True: # Event Loop # sg.TimerStart() event, values = window.Read(timeout=0) if event is None or event == 'Exit': break if event == 'Button': print(event, values) if values['_MENU_'] == 'Pause Graph': graph_paused = not graph_paused if not graph_paused: i += 1 if i >= 600: graph_elem.Move(-1, 0) graph_elem.DrawLine((i, 0), (i, randint(0, 300)), width=1, color='#{:06x}'.format(randint(0, 0xffffff))) window.FindElement('+PROGRESS+').UpdateBar(i % 600) # sg.TimerStop() window.Close()
import PySimpleGUIQt as sg layout = [ [sg.Text('This is the new Dial Element!')], [sg.Dial(range=(1,100), key='_DIAL_')], [sg.Button('Show'), sg.Button('Exit')] ] window = sg.Window('Window Title').Layout(layout) while True: # Event Loop event, values = window.Read() print(event, values) if event is None or event == 'Exit': break window.Close()
import PySimpleGUIQt as sg layout = [ [sg.Text('This is the new Dial Element!')], [sg.T(' ', size=(70,10)), sg.T('0', key='+DIAL_VALUE+', font=('Helvetica', 15))], [sg.Dial(range=(1,100), key='_DIAL_', change_submits=True)], [sg.Slider((1,100), orientation='h', key='_SLIDER_', change_submits=True), sg.T(' 1', key='+SLIDER_VALUE+', font=('Helvetica', 15))], [sg.T('1' + 30*' ' + '100')], [sg.Button('Show'), sg.Button('Exit')] ] window = sg.Window('Window Title').Layout(layout) while True: # Event Loop event, values = window.Read() if event is None or event == 'Exit': break window.FindElement('+DIAL_VALUE+').Update(values['_DIAL_']) window.FindElement('+SLIDER_VALUE+').Update(values['_SLIDER_']) window.Close()
text_color='red', tooltip='This is my tooltip', justification='c', font=('Courier', 22), key='_TEXT_') ], [ sg.Text('Input something here'), sg.Stretch(), sg.Input('This is an InputText Element', key='_INPUT_', font=('Any', 14)) ], [ sg.Text('This is the new Dial Element'), sg.Dial(background_color='red'), sg.Stretch() ], [ sg.Combo(['Combo 1', 'Combo 2', 'Combo 3'], key='+COMBO+', size=(150, 30), text_color='green') ], [ sg.Listbox(['Listbox Item 1', 'Listbox Item 2', 'Listbox Item 3'], key='+LIST+', size=(200, 150), text_color='blue'), sg.Slider((1, 100), orientation='v', key='+SLIDER 1+') ],
[ sg.Text('Checkbox', size=(200, 35)), sg.Checkbox('Checkbox', change_submits=True) ], [sg.Text('RadioButton', size=(200, 35)), sg.Radio('Radio Button', 1)], [sg.Text('Slider', size=(200, 35)), sg.Slider(orientation='h')], [sg.Text('Button', size=(200, 35)), sg.Button('Button')], [sg.Text('Table', size=(200, 35)), sg.Table([[0, 1, 3, 4]])], [ sg.Text('Frame', size=(200, 35)), sg.Frame('Frame', [[sg.T('')], [sg.T('')]]) ], [sg.Text('Stdout Output', size=(200, 35)), sg.Output(size=(200, 75))], [sg.Text('Dial', size=(200, 35)), sg.Dial(size=(150, 75)), sg.Stretch()], [sg.Button('Blank'), sg.Button('Exit')] ] window = sg.Window('Window Title', font=('Helvetica', 13)).Layout(layout) while True: # Event Loop event, values = window.Read() print(event, values) if event is None or event == 'Exit': break window.Close()
select_mode=sg.LISTBOX_SELECT_MODE_EXTENDED), sg.Stretch(), sg.Frame( 'Labelled Group', [[ sg.Slider(range=(1, 100), orientation='v', default_value=25, tick_interval=25), sg.Slider(range=(1, 100), orientation='v', default_value=75), sg.Slider(range=(1, 100), orientation='v', default_value=10), sg.Column(column1, background_color='lightblue') ]], ), sg.Stretch(), sg.Dial((1, 100)) ], [sg.Text('_' * 50, justification='c')], [sg.Text('Choose A Folder')], [ sg.Text('Your Folder'), sg.InputText('Default Folder', size=(300, 22)), sg.FolderBrowse(), sg.Stretch() ], [sg.Submit(tooltip='Click to submit this form', ), sg.Cancel()] ] window = sg.Window( 'Everything bagel', grab_anywhere=False, font=('Helvetica', 12), no_titlebar=False,