def themewindow(): config = ConfigParser() config.read('config.cfg') layout = [[gui.T('Choose Theme')], [ gui.Radio('Light', 'RADIO1'), gui.Radio('Dark', 'RADIO01', key='_THEME_') ], [gui.Button('Exit'), gui.Button('Enter')]] window = gui.Window('Theme Picker', no_titlebar=True, keep_on_top=True, grab_anywhere=True).Layout(layout) while True: event, values = window.Read() if event == 'Exit': break elif event == 'Enter': if values['_THEME_'] == True: config['DEFAULT']['theme'] = 'dark' with open('config.cfg', 'w') as f: config.write(f) break elif values['_THEME_'] == False: config['DEFAULT']['theme'] = 'light' with open('config.cfg', 'w') as f: config.write(f) break config.read('config.cfg') theme = config['DEFAULT']['theme'] window.Close() return theme
def _localization_frame_(): """ This frame helps us group settings related to region-specific measurement systems :return: """ import PySimpleGUIQt as qt frame = [[ qt.Text('Primary Temperature Unit:', justification='left'), qt.Radio('Fahrenheit', group_id='temp_unit', default=True), qt.Radio('Celsius', group_id='temp_unit'), qt.Radio('Kelvin', group_id='temp_unit') ]] return frame
def main(): layout = [[ gui.T('Have You Installed Theos Before? ', font=('Arial', 10), justification='center') ], [ gui.Radio('No', 'RADIO1', default=True), gui.Radio('Yes', 'RADIO1', key='_RADIOYES_', default=True) ], [gui.Button('Exit'), gui.Button('Enter')]] window = gui.Window('Check Theos Install', no_titlebar=True, keep_on_top=True, grab_anywhere=True).Layout(layout) while True: event, values = window.Read() if event == 'Exit': exit() break if event == 'Enter': if values['_RADIOYES_'] == True: window.Close() break elif values['_RADIOYES_'] == False: while True: window2 = gui.Window( 'Open Tutorial', no_titlebar=True, keep_on_top=True, grab_anywhere=True).Layout([[ gui.Text('Please Install Theos First ', justification='center') ], [gui.Button('Exit'), gui.Button('Open Link')]]) event, values = window2.Read() if event == 'Exit': window2.Close() break elif event == 'Open Link': webbrowser.open_new_tab( 'https://github.com/theos/theos') window2.Close() break theosgui()
def choose_seed_action(self): logger.debug('In choose_seed_action') layout = [[ sg.Text( "Do you want to create a new seed, or to restore a wallet using an existing seed?" ) ], [sg.Radio('Create a new seed', 'radio1', key='create')], [sg.Radio('I already have a seed', 'radio1', key='restore')], [sg.Button('Cancel'), sg.Button('Next')]] window = sg.Window("Satochip-Bridge: Create or restore seed", layout, icon=self.satochip_icon) event, values = window.read() window.close() del window logger.debug("Event:" + str(type(event)) + str(event)) logger.debug("Values:" + str(type(values)) + str(values)) #Event:<class 'str'>Next #Values:<class 'dict'>{'create': True, 'restore': False} return (event, values)
def selectPlotPopup(listOptions): optionsColumn = lambda groupID: [[ pygui.Radio( text=str(option), key=str(option) + str(groupID), group_id=groupID) ] for option in listOptions] xColumn = pygui.Column([[pygui.Text("x axis")]] + optionsColumn("x"), size=(300, 300), scrollable=True) yColumn = pygui.Column([[pygui.Text("y axis")]] + optionsColumn("y"), size=(300, 300), scrollable=True) plotWindow = pygui.Window(title="Select metrics to be plotted", layout=[[xColumn, yColumn], [pygui.Button("Plot")]]) #main loop while True: event, values = plotWindow.read() if (event == "Plot"): #get the keys xmetric = "" ymetric = "" for (key, value) in values.items(): if value: if key[-1] == "x": xmetric = key[:-1] else: ymetric = key[:-1] #get the data xdata = [] ydata = [] for data in [(xdata := [], xmetric), (ydata := [], ymetric)]: for frame in dataLog: data[0].append(frame[data[1]]) #plot the data plt.plot(xdata, ydata) plt.xlabel(xmetric) plt.ylabel(ymetric) plt.show()
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()
sg.Text('(Almost) All widgets in one Window!', justification='c', font=("Helvetica", 25), relief=sg.RELIEF_RIDGE) ], [sg.Text('Here is some text.... and a place to enter text')], [sg.InputText('This is my text', size=(400, 22))], [ sg.Frame( layout=[[ sg.Checkbox('Checkbox', size=(185, 22)), sg.Checkbox('My second checkbox!', default=True) ], [ sg.Radio( 'My first Radio!', "RADIO1", default=True, size=(180, 22), ), sg.Radio('My second Radio!', "RADIO1") ], [ sg.Radio( 'Third Radio!', "RADIO2", default=True, size=(180, 22), ), sg.Radio('Fourth Radio!', "RADIO2") ]], title='Options', title_color='red',
if event2 == sg.WINDOW_CLOSED: break window2.close() window.Enable() ABA1_COL1 = [ [sg.Text("Pesquisa por nome (deixe vazio para ver todas as receitas):")], [sg.Input(key="nome_val"), sg.Button("Pesquisar", size=(10, 1), key="pesq_nome")], [ sg.Text( "Pesquisa por ingredientes (separado por vírgula, deixe vazio para ver todas as receitas):" ) ], [ sg.Radio("Apenas", "rgroup", default=True, key="rad_apenas"), sg.Radio("Também", "rgroup", key="rad_tambem"), ], [ sg.Input(key="ingred_val"), sg.Button("Pesquisar", size=(10, 1), key="pesq_ingred"), ], [sg.Text("Resultados:")], [sg.Listbox([], enable_events=True, key="resultados")], ] ABA1_COL2 = [ [ sg.Text("Listar todos os ingredientes:"), sg.Button("Listar", size=(10, 1), key="con_lista_ingredientes"), sg.Text("Listar todas as categorias:"), sg.Button("Listar", size=(10, 1), key="con_lista_cat"),
""" Define information for the Add New Player window """ import PySimpleGUIQt as qt from ..start import alerts frame1 = [[ qt.Text('Name:', font="Monopoly, Bold", text_color='#C70000'), qt.InputText(key='user_name') ], [ qt.Text('Gender:', font="Monopoly, Bold", text_color='#C70000'), qt.Radio('Male', group_id='gender', key='gender_radio_male'), qt.Radio('Female', group_id='gender', key='gender_radio_female') ]] def window(): alerts.not_yet_implemented() active = False
key='+LIST+', size=(200, 150), text_color='blue'), sg.Slider((1, 100), orientation='v', key='+SLIDER 1+') ], [ sg.Slider((1, 10), size=(200, 30), orientation='h', key='+SLIDER 2+'), sg.Stretch() ], [ sg.Checkbox('Checkbox 1', key='+CB1+'), sg.Checkbox('Checkbox 2', key='+CB2') ], [sg.Checkbox('Checkbox 3'), sg.Checkbox('Checkbox 4')], [sg.Radio('Radio1', group_id=1), sg.Radio('Radio2', group_id=1)], [sg.Spin((5, 8), size=(100, 30))], [ sg.Multiline('This is a Multiline Element', size=(300, 300), key='+MULTI+') ], [ sg.Button('My Button', size=(120, 30)), sg.Exit(), sg.Button('Change', key='_CHANGE_') ], ] window = sg.Window('My first QT Window',
def main(): # set program theme theme_name = 'DarkPurple4' sg.theme(theme_name) os.system('color') # define default values for UI default_size_text = (30, 1) default_size_input = (50, 1) default_size_input_with_button = ((30, 1), (15, 1)) # define file handeling modes for song duplicates dupli_mode = { 'radio_move': 'Move when in other list', 'radio_copy': 'Copy when in other list', 'radio_download': 'Download again' } # create progress bars and their labels progresses = [(sg.Text(f'ProgBar {key}: None', key=f'-{key}_text', visible=False), sg.ProgressBar(100, key=f'-{key}_progressbar', visible=False)) for key in range(1, 51)] # make layout layout = [[ sg.Text('Username: '******'', key='username_input', enable_events=True), sg.Button('Check', key='username_button') ], [ sg.Text('Anime Music Dir: '), sg.Input(ml.library_dir, key='dir_input', disabled=True, enable_events=True), sg.FolderBrowse(initial_folder=ml.get_default_dir(), key='dir_browse') ], [ sg.Radio(dupli_mode[key], group_id='dupli', key=key, enable_events=True) for i, key in enumerate(dupli_mode) ], [ sg.Text('Thread count: '), sg.Combo(list(range(1, 51)), default_value=1, key='thread_count_combo', enable_events=True) ], [ sg.Column(progresses, scrollable=True, key='progresses_column', size=(700, 200)) ], [sg.Button('Download', key='download_button')], [sg.Button('', visible=False, key='--PROGRESS_UPDATE--')]] to_disable = [ 'download_button', 'username_input', 'username_button', 'dir_input', 'dir_browse', 'radio_move', 'radio_copy', 'radio_download' ] # make window window = sg.Window("MalMuzic", layout, finalize=True, resizable=False) # for x in range(50): # progresses[x][1].UpdateBar(50) # set default values to UI layout[2][0].update(value=True) # set more variables input_default_color = sg.LOOK_AND_FEEL_TABLE[theme_name]['INPUT'] run_thread_running = False run_thread: Tuple[Event, Thread] = None # type: ignore to_close = False # helper function for main def check_username(): print(f'[I] Looking for mal user "{values["username_input"]}"') exists = mm.user_exists(values["username_input"]) print('[I] Username exists' if exists else '[I] Username doesn\'t exists') if not exists: window['username_input'].update(background_color='#FF7777') else: window['username_input'].update( background_color=input_default_color) return exists def get_dupli_mode(): for i, key in enumerate(dupli_mode): if window[key].get(): return i # UI loop while not to_close: event, values = window.read() # type: ignore if event == sg.WIN_CLOSED or event is None: to_close = True if run_thread is not None: run_thread[0].set() continue # print('[I]', event, values[event] if event in values else '') if event == 'username_button': check_username() if event == 'download_button': if not run_thread_running: print('[I] Checking username') if not check_username(): continue ml.library_dir = values['dir_input'] window['download_button']( text=window['download_button'].ButtonText + ' Disabled') for dis in to_disable: window[dis](disabled=True) run_thread = run(window, values["username_input"], progresses, window['progresses_column'], dir=ml.library_dir, thread_count=values['thread_count_combo']) else: cprint('[E] Download already running', 'red') if event == 'thread_count_combo': print(f'[I] User choose {values[event]} threads to run async') if event in dupli_mode: print(f'[I] User choose: "{dupli_mode[event]}"') if event == '--PROGRESS_UPDATE--': # progresses[values[event][0]][1].UpdateBar(values[event][2]) for i in range(len(st.threads)): if st.threads[i] is not None: if hasattr(st.threads[i][1], 'percent'): progresses[i][1].UpdateBar(st.threads[i][1].percent) progresses[i][0].update( value=st.threads[i][1].request + ': ' + str(st.threads[i][1].total_kb) + 'kB, ' + str(round(st.threads[i][1].rate, 1)) + 'kB/s') if run_thread is not None: print('[I] Download thread still running, joining with it.') run_thread[1].join() window.close() print('[!] Exiting program')
[ sg.Text('ListBox', size=(200, 35)), sg.Listbox(['Listbox 1', 'Listbox 2', 'Listbox 3'], size=(200, 85)) ], [ sg.Text('ComboBox / Dropdown', size=(200, 25)), sg.Combo([ 'Combo item 1', ], size=(200, 35)) ], [sg.Text('Spinner', size=(200, 35)), sg.Spin([1, 2, 3], size=(40, 30))], [ 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')] ]
from processors import encode_to_utf8 from processors import standardize_characters from processors import remove_pdf_metadata # Set the 'print' command to use the GUI. print = sg.Print # Define the GUI. sg.ChangeLookAndFeel('TealMono') layout = [ [sg.Text('Select folder to process:', size=(22, 1)), sg.InputText("", key='source'), sg.FolderBrowse(size=(9, 1))], [sg.Text('Save files to:', size=(25, 1)), sg.InputText("", key='destination'), sg.FolderBrowse(size=(9, 1))], [sg.Text('Choose processor:', size=(20, 1))], [sg.Radio("Convert to plaintext (supports .docx, .html, .pdf, .pptx, .rtf)", "Processors", key='convertToPlaintext', default=True)], [sg.Radio("Encode in UTF-8 (expects .txt files)", "Processors", key='encodeUtf8', default=False)], [sg.Radio("Standardize non-ASCII characters and remove non-English characters (expects UTF-8 encoded input)", "Processors", key='standardizeCharacters', default=False)], [sg.Radio("Remove PDF metadata (i.e., authoring information). Expects .pdf files.", "Processors", key='removeMetadata', default=False)], [sg.Button("Process files", size=(20, 1)), sg.Exit(size=(6, 1))], [sg.ProgressBar(max_value=10, orientation='h', size=(80, 20), key='progress')], [sg.Text('', size=(80, 1), key='result_text')], [sg.Text('', size=(80, 1), key='progress_text')], ] window = sg.Window('Corpus Text Processor', keep_on_top=False, font=("Helvetica", 14), default_element_size=(50, 1)).Layout(layout) progress_bar = window['progress'] progress_text = window['progress_text'] result_text = window['result_text']
prob = 0 for i in range(k, n + 1): prob += binomial(n, p, i) return prob r_keys = ['=', '<', '<=', '>', '>='] sg.change_look_and_feel('DarkBlue1') #colour layout = [[sg.Text('| -N- | Sample space:'), sg.InputText(key='-N-')], [sg.Text('| -P- | Success rate: '), sg.InputText(key='-P-')], [sg.Text('| -K- | Number of successes:'), sg.InputText(key='-K-')], [sg.Text('Choose an operation: ')], [ sg.Radio('=', 1, key=r_keys[0], default=True), sg.Radio('<', 1, key=r_keys[1]), sg.Radio('<=', 1, key=r_keys[2]), sg.Radio('>', 1, key=r_keys[3]), sg.Radio('>=', 1, key=r_keys[4]) ], [sg.Button('Calculate'), sg.Button('Clear'), sg.Button('Exit')], [sg.Output(size=(30, 10), key='_output_')]] window = sg.Window('Binomial Calculator', layout) #makes window while True: event, values = window.read() n = values['-N-'] p = values['-P-'] k = values['-K-']
continue else: break columnTop = [[sg.Text('Tracker Interface - Case Search')], [ sg.Text('Year: '), sg.Spin([i for i in range(2000, 2100)], initial_value=datetime.date.today().year) ], [sg.Text('Case Number: '), sg.InputText()]] jobMakerLayout = [[sg.Column(columnTop)], [sg.Text('_' * 100)], [sg.Text('Case Options:')], [ sg.Radio('Display Case', "RADIO1", default=True), sg.Radio('CC-JT Letter Creator', "RADIO1"), sg.Radio('CC Letter Creator', "RADIO1") ], [ sg.Radio('Evidence Request Creator', "RADIO1"), sg.Radio('Case Status/Change of Plea Updater', "RADIO1"), sg.Radio('Guilty Plea Disposition Creator', "RADIO1") ], [ sg.Column(submitButton), sg.Button(button_text="Add victim services?", button_color=('#FFFFFF', '#7766E8'), visible=False, key='VSERV'), sg.Column(cancelButton)