def main(): layout = [ [sg.Text('Format To:')], [ sg.InputCombo( ('btrfs', 'ext2', 'ext3', 'ext4', 'fat32', 'ntfs', 'minix'), size=(20, 1)) ], [sg.Text('Device: /dev/sd?')], [ sg.InputCombo(('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'), size=(20, 1)) ], [sg.Text('Partition: /dev/sdx?')], [ sg.InputCombo(('1', '2', '3', '4', '5', '6', '7', '8', '9'), size=(20, 1)) ], [sg.Button("FORMAT!"), sg.Button("Exit")] ] window = sg.Window('Splicer', layout, default_element_size=(40, 1), grab_anywhere=False) cprint("Running Notice-Window", "green") notice() while True: # Event Loop event, values = window.read() if event in (None, 'Exit'): cprint("Exiting Application...", "red") break if event == 'FORMAT!': cprint("Running Confirmation-Window", "green") confirmation() window.close()
def create_new_patient(first_name: str = "", last_name: str = "", id_type: str = "", id_data: str = "") -> None: labels = [[gui.T("First Name:")], [gui.T("Last Name:")], [gui.T("ID Type:")], [gui.T("ID Value:")], [gui.T("Height:")], [gui.T("Weight:")], [gui.T("Sex:")], [gui.T("Date of Birth:")]] inputs = [[gui.In(first_name, key="first_name", size=(17, 1))], [gui.In(last_name, key="last_name", size=(15, 1))], [ gui.InputCombo(idTypes, default_value=id_type, key="id_type", size=(15, 1)) ], [gui.In(id_data, key="id_data", size=(15, 1))], [gui.In(key="height", size=(15, 1))], [gui.In(key="weight", size=(15, 1))], [gui.InputCombo(sexOptions, key="sex", size=(15, 1))], [ gui.In(str(date.today()), key="dob", size=(9, 1), pad=(2, 0)), gui.CalendarButton("", target="dob", image_filename="images/calendar.png", image_subsample=18) ]] layout = [[gui.T("Input new patient information:", key="top_text")], [gui.Column(labels), gui.Column(inputs)], [gui.Submit(), gui.Button("Provider Menu")]] window = gui.Window("Edit Patient Info").Layout(layout) while True: button, values = window.Read() if button in (None, "Quit"): window.close() break elif button == "Provider Menu": window.close() provider_menu() break elif button == "Submit": if len(values["dob"]) >= 10: dob = date.fromisoformat(values["dob"][:10]) else: dob = None patient = Patient(values["first_name"], values["last_name"], dob, values["id_data"], values["id_type"], values["sex"], values["height"], values["weight"]) try: db.add_patient(patient) window.close() display_patient(patient) break except Conflict: window["top_text"].update("Patient already exists!")
def set_layout(self): diff_layout = [[sg.Checkbox('Very easy', size=(15, 1))], [sg.Checkbox('Easy', default=True)], [sg.Checkbox('Medium', size=(15, 1))], [sg.Checkbox('Hard', default=True)], [sg.Checkbox('Very hard', size=(15, 1))]] results_layout = [[sg.Text('ID\tRows\tCols\tDiff', size=(30, 1))], [ sg.Listbox( key='-SEL_PUZZLES-', values=[], select_mode=sg.LISTBOX_SELECT_MODE_EXTENDED, size=(30, 15)) ], [ sg.Button(button_text='Load all puzzles'), sg.Button(button_text='Load selected puzzles') ]] diff2_layout = [[sg.Button('50 easy puzzles', key='-EASY-')], [sg.Button('50 medium puzzles', key='-MEDIUM-')], [sg.Button('50 hard puzzles', key='-HARD-')], [sg.Button('50 very hard puzzles', key='-VERY_HARD-')]] self.layout = [[ sg.Text('Search in database'), sg.Text('', key='-OUTPUT-') ], [ sg.Frame('Difficulty', diff_layout), sg.Frame('Random sets', diff2_layout) ], [ sg.Text('No. of rows', size=(10, 1)), sg.InputCombo(('<', '<=', '=', '>=', '>'), default_value='=', size=(3, 1)), sg.InputCombo([str(5 * i) for i in range(1, 21)], default_value=5, size=(8, 1)) ], [ sg.Text('No. of cols', size=(10, 1)), sg.InputCombo(('<', '<=', '=', '>=', '>'), default_value='=', size=(3, 1)), sg.InputCombo([str(5 * i) for i in range(1, 21)], default_value=5, size=(8, 1)) ], [ sg.Submit(button_text='Search', tooltip='Click to submit this form') ], [sg.Frame('Results', results_layout)]] self.window = sg.Window('Database browser', self.layout, finalize=True, resizable=True)
def collect_check_links_arguments_from_gui(): """ Uses PySimpleGUI interface to collect parameters for check_links() Returns: web_driver -- which WebDriver to use: "Chrome" or "Firefox" webpage -- the Web page (URL) containing links to be checked basename -- the basename for the results file only_print_errors -- only print links which fail checking (boolean) """ DRIVERS = ["Chrome", "Firefox"] # List of WebDrivers to choose from WEBPAGES = [ "http://127.0.0.1:5000/", "http://127.0.0.1:5500/", "https://www.russelljqa.site/" ] # List of Web pages (URLs) to choose from BASENAMES = ["lektor-server", "vscode-live-server", "russelljqa"] # Corresponding (to webpages) list of basenames to choose from layout = [[ PSG.Text("WebDriver to use:", size=(20, 1), justification='right'), PSG.InputCombo(DRIVERS, size=(25, 1)) ], [ PSG.Text("Web page (URL) to check:", size=(20, 1), justification='right'), PSG.InputCombo(WEBPAGES, size=(25, 1), readonly=False, tooltip="Editable") ], [ PSG.Text("Basename for results file:", size=(20, 1), justification='right'), PSG.InputCombo(BASENAMES, size=(25, 1), readonly=False, tooltip="Editable") ], [ PSG.Text(" ", size=(20, 1), justification='right'), PSG.Checkbox("Show only errors", default=True) ], [ PSG.Text(" ", size=(20, 1), justification='right'), PSG.ReadFormButton("Submit") ]] window = PSG.Window("Check Page Links").Layout(layout) dummy, (web_driver, webpage, basename, only_print_errors) = \ window.Read() window.Close() if dummy is None: # window closed abnormally return None else: return (web_driver, webpage, basename, only_print_errors)
def elegir_colores(colores): ''' recibe un diccionario con el color correspondiente a cada tipo de palabra y los modifica ''' dic_colores={'Rojo':'red','Naranja rojizo':'#FF4500','Verde':'green','Naranja':'orange','Celeste':'#3D82F9', 'Verde lima':'#32CD32', 'Verde Oscuro':'darkgreen','Verde marino':'#2E8B57','Amarillo':'yellow','Rosa':'pink', 'Rosa fuerte':'#FF69B4','Salmón':'salmon','Violeta':'#EE82EE','oliva':'#808000','Aguamarina':'#7FFFD4', 'Turquesa':'#40E0D0','Chocolate':'#D2691E','coral':'#FF7F50'} lista_colores=list(dic_colores.keys()) dic_colores_alt=dict(zip(dic_colores.values(),dic_colores.keys())) BCS=colores['Sustantivos'] BCA=colores['Adjetivos'] BCV=colores['Verbos'] columna1=[ [sg.Text('Sustantivos')], [sg.InputCombo(lista_colores,change_submits=True,default_value=dic_colores_alt[colores['Sustantivos']],size=(13,1),key='color_sust')], [sg.Button('',size=(13,2),disabled=True,button_color=('black',BCS),key='BS')], ] columna2=[ [sg.Text('Adjetivos')], [sg.InputCombo(lista_colores,change_submits=True,default_value=dic_colores_alt[colores['Adjetivos']],size=(13,1),key='color_adj')], [sg.Button('',size=(13,2),disabled=True,button_color=('black',BCA),key='BA')], ] columna3=[ [sg.Text('Verbos')], [sg.InputCombo(lista_colores,change_submits=True,default_value=dic_colores_alt[colores['Verbos']],size=(13,1),key='color_verbo')], [sg.Button('',size=(13,2),disabled=True,button_color=('black',BCV),key='BV')], ] layout_colores=[ [sg.Column(columna1),sg.Column(columna2),sg.Column(columna3)], [sg.Button('Terminar',size=(12,2),key='Terminar')], ] ventana_colores=sg.Window('Elegir colores',margins=(10,30)).Layout(layout_colores) while True: event_col,values_col=ventana_colores.Read() if event_col is None: break CS=dic_colores[values_col['color_sust']] CA=dic_colores[values_col['color_adj']] CV=dic_colores[values_col['color_verbo']] if CS!=BCS: BCS=CS ventana_colores.FindElement('BS').Update(button_color=('black',BCS)) if CA!=BCA: BCA=CA ventana_colores.FindElement('BA').Update(button_color=('black',BCA)) if CV!=BCV: BCV=CV ventana_colores.FindElement('BV').Update(button_color=('black',BCV)) if event_col=='Terminar': if(BCS!=BCA and BCS!=BCV and BCA!=BCV): colores['Sustantivos']=BCS colores['Adjetivos']=BCA colores['Verbos']=BCV break else: sg.Popup('Elija 3 colores diferentes') ventana_colores.Close()
def edit_patient_info(patient: Patient) -> None: labels = [[gui.T("First Name:")], [gui.T("Last Name:")], [gui.T("ID Type:")], [gui.T("ID Value:")], [gui.T("Height:")], [gui.T("Weight:")], [gui.T("Sex:")], [gui.T("Date of Birth:")]] inputs = [[ gui.In(patient.first_name, key="first_name", size=(17, 1), disabled=True) ], [ gui.In(patient.last_name, key="last_name", size=(15, 1), disabled=True) ], [ gui.InputCombo(idTypes, default_value=patient.id_type, key="id_type", size=(15, 1), disabled=True) ], [ gui.In(patient.id_data, key="id_data", size=(15, 1), disabled=True) ], [gui.In(str(patient.height), key="height", size=(15, 1))], [gui.In(str(patient.weight), key="weight", size=(15, 1))], [ gui.InputCombo(sexOptions, default_value=patient.sex, key="sex", size=(15, 1)) ], [ gui.In(str(patient.dob), key="dob", size=(9, 1), pad=(2, 0)), gui.CalendarButton("", target="dob", image_filename="images/calendar.png", image_subsample=18) ]] layout = [[gui.Column(labels), gui.Column(inputs)], [gui.Submit()]] window = gui.Window("Edit Patient Info").Layout(layout) button, values = window.Read() patient.first_name = values["first_name"] patient.last_name = values["last_name"] patient.id_type = values["id_type"] patient.id_data = values["id_data"] patient.height = values["height"] patient.weight = values["weight"] patient.sex = values["sex"] if len(values["dob"]) >= 10: patient.dob = date.fromisoformat(values["dob"][:10]) else: patient.dob = None db.push_patient(patient)
def getLayout(): column1 = [[sg.Text('Channel 1', background_color='lightgreen', justification='center', size=(8, 1)), chantype], [sg.InputCombo(('VCO'), size=(20, 5), key='inst1',enable_events=True),sButton('M1'),sButton('S1')], [sg.Slider(range=(1, 100), key='chan1', orientation='h', size=(15, 20), default_value=85, \ enable_events=True), MyButton('Detail1')]] column2 = [[sg.Text('Channel 2', background_color='#d3dfda', justification='center', size=(8, 1)), chantype], [sg.InputCombo((instlist), size=(20, 5), key='inst2',enable_events=True),sButton('M2'),sButton('S2')], [sg.Slider(range=(1, 100), key='chan2', orientation='h', size=(15, 20), default_value=85, \ enable_events=True), MyButton('Detail2')]] column3 = [[sg.Text('Channel 3', background_color='#d3dfda', justification='center', size=(8, 1)), chantype], [sg.InputCombo((instlist), size=(20, 5), key='inst3'),sButton('M3'),sButton('S3')], [sg.Slider(range=(1, 100), key='chan3', orientation='h', size=(15, 20), default_value=85, \ enable_events=True), MyButton('Detail3')]] column4 = [[sg.Text('Channel 4', background_color='#d3dfda', justification='center', size=(8, 1)), chantype], [sg.InputCombo((instlist), size=(20, 5), key='inst4'),sButton('M4'),sButton('S4')], [sg.Slider(range=(1, 100), key='chan4', orientation='h', size=(15, 20), default_value=85, \ enable_events=True), MyButton('Detail4')]] track1 = [sg.Column(column1, background_color='lightgreen'), sg.Graph(canvas_size=(900, 100), graph_bottom_left=(0, 0), graph_top_right=(900, 100), background_color='grey', key='graphch1')] track2 = [sg.Column(column2, background_color='#d3dfda'), sg.Graph(canvas_size=(900, 100), graph_bottom_left=(0, 0), graph_top_right=(900, 100), background_color='grey', key='graphch2')] track3 = [sg.Column(column3, background_color='#d3dfda'), sg.Graph(canvas_size=(900, 100), graph_bottom_left=(0, 0), graph_top_right=(900, 100), background_color='grey', key='graphch3')] track4 = [sg.Column(column4, background_color='#d3dfda'), sg.Graph(canvas_size=(900, 100), graph_bottom_left=(0, 0), graph_top_right=(900, 100), background_color='grey', key='graphch4')] transcol = [[sg.Text('', size=(20, 2), font=('Helvetica', 20), justification='center', key='secs')], [MyButton('Record'), MyButton('Play'), MyButton('Stop'), MyButton('Reset')], [sg.Checkbox('Metronome', key='metro', default=True)], recordto] op=[[sg.Output(size=(80,15), background_color='black', text_color='yellow')]] #op = [[sg.Output(size=(80, 10))]] layout = [track1,track2,track3,track4, [sg.Text('_' * 210)], [sg.Text(' revLev HFdamp roomSize Master')], [sg.Slider(range=(1, 100), orientation='v', size=(8, 20), key='revLev', default_value=22), sg.Slider(range=(1, 100), orientation='v', size=(8, 20), key='HFdamp',default_value=55), sg.Slider(range=(1, 100), orientation='v', size=(8, 20), key='roomSize',default_value=22), sg.Slider(range=(1, 100), orientation='v', size=(8, 20), key='Master',default_value=50), sg.Graph(canvas_size=(40, 160), graph_bottom_left=(0, 0), graph_top_right=(80, 100), background_color='red', key='graph'), sg.VerticalSeparator(pad=None), sg.Column(transcol), sg.VerticalSeparator(pad=None), sg.Column(op)]] return layout
def layoutConfig(): '''layout del menu de configuracion''' layoutconfig = [ [sg.Text('Seleccione el nivel de dificultad:', font='Helvetica', background_color=('#A72D2D'))], [sg.InputCombo(('Facil', 'Normal', 'Dificil'), size=(25,1), key='nivel')], [sg.Text('Seleccione el tiempo por ronda:', font='Helvetica', background_color=('#A72D2D'))], [sg.InputCombo(('20 seg(facil)', '15 seg(normal)', '10 seg(dificil)'), size=(20,1), key='tiempo')], [sg.Button('Aceptar', key='Ok', pad=(80,5))] ] return layoutconfig
def __friend_support_area(self) -> List: friend_support = self.quest['friend_support'] k = [f'{self.__prefix_key}_friend_support_use_', f'{self.__prefix_key}_friend_support_wave_N_', f'{self.__prefix_key}_friend_support_myturn_', f'{self.__prefix_key}_friend_support_replace_'] frame_layout = [[ sg.Checkbox('use', key=k[0], default=friend_support['use'], enable_events=True), sg.Text('wave_N:', pad=((5, 2), 5)), sg.InputCombo([i for i in range(1, 6)], key=k[1], default_value=friend_support['wave_N'], disabled=(not friend_support['use']), enable_events=True), # noqa: E501 sg.Text('mytuen:', pad=((5, 2), 5)), sg.Spin([i for i in range(0, 100)], size=(2, 1), key=k[2], initial_value=friend_support['myturn'], disabled=(not friend_support['use']), enable_events=True), # noqa: E501 sg.Text('replace:', pad=((5, 2), 5)), sg.InputCombo([f'character_{p}' for p in pos], size=15, key=k[3], default_value=friend_support['replace'], disabled=(not friend_support['use']), enable_events=True), # noqa: E501 ]] return [sg.Frame('friend support', frame_layout)]
def __orb_area(self) -> List: orb = self.quest['orb'] k = [f'{self.__prefix_key}_orb_name_'] frame_layout = [ [sg.Text('name:'), sg.Input(orb['orb_name'], key=k[0], pad=((2, 0), 5), size=(30, 1), enable_events=True)], *[(sg.Text(f'option {n}:'), sg.Checkbox('use', key=f'{self.__prefix_key}_orb{n}_use_', default=orb[n]['use'], enable_events=True), # noqa: E501 sg.Text('wave_N:', pad=((5, 2), 5)), sg.InputCombo([i for i in range(1, 6)], key=f'{self.__prefix_key}_orb{n}_wave_N_', default_value=orb[n]['wave_N'], pad=((0, 10), 5), disabled=(not orb[n]['use']), enable_events=True), # noqa: E501 sg.Text('myTurn:', pad=((5, 2), 5)), sg.Spin([i for i in range(0, 100)], size=(2, 1), key=f'{self.__prefix_key}_orb{n}_myturn_', initial_value=orb[n]['myturn'], pad=((0, 10), 5), disabled=(not orb[n]['use']), enable_events=True), # noqa: E501 sg.Text('target:', pad=((5, 2), 5)), sg.InputCombo(('A', 'B', 'C', 'N'), key=f'{self.__prefix_key}_orb{n}_target_', default_value=orb[n]['target'], pad=((0, 10), 5), disabled=(not orb[n]['use']), enable_events=True) # noqa: E501 ) for n in map(str, range(1, 4))] ] return [sg.Frame('orb', frame_layout)]
def screen(orientacion, colores_mostrar, tamX, tamY, dic_color_cantPalabras): ''' Dibuja el layout dependiendo de la orientacion elegida. Retorna el layout ''' ayuda = ['Cantidad Tipos', 'Definiciones', 'Lista de palabras'] if (orientacion == 'Horizontal'): #aux es una variable que indica la orientación aux = 1 layout = [[ sg.T('Tipo de Palabra'), sg.InputCombo(colores_mostrar, size=(20, 20), key='combo') ], [ sg.T('Seleccione el tipo de ayuda'), sg.InputCombo(ayuda, key='ayuda'), sg.Submit('Ayuda') ], [ sg.Graph(canvas_size=(tamX, tamY), graph_bottom_left=(0, tamY), graph_top_right=(tamX, 0), enable_events=True, key='graph') ], [sg.Submit('Terminar')]] else: aux = 2 layout = [[ sg.T('Tipo de Palabra'), sg.InputCombo(colores_mostrar, size=(20, 20), key='combo') ], [ sg.T('Seleccione el tipo de ayuda'), sg.InputCombo(ayuda, key='ayuda'), sg.Submit('Ayuda') ], [ sg.Graph(canvas_size=(tamY, tamX), graph_bottom_left=(0, tamX), graph_top_right=(tamY, 0), enable_events=True, key='graph') ], [sg.Submit('Terminar')]] window = sg.Window('Sopa').Layout(layout) window.Finalize() graph = window.FindElement('graph') return (layout, window, graph)
def create_layout(): return [ [ sg.Text('Starbound path:'), ], [ sg.FolderBrowse(key="starbound_path_browse", target="starbound_path_label"), sg.InputText("", key="starbound_path_label", enable_events=True, disabled=True) ], [sg.Text("", key="profile_label", auto_size_text=False)], [ sg.InputCombo((), size=(20, 1), key="profile_list", enable_events=True), sg.Button("Save", key="save"), sg.Button("Load", key="load"), sg.Button("Delete", key="delete") ], [ sg.InputText(key="new_profile_input_text", enable_events=True), sg.Button("New", key="new") ], ]
def declaration_form(emp_name, emp_id): form = sg.FlexForm('Declaration Page') # begin with a blank form layout = [[ sg.Checkbox( 'I {emp_name} with employee id {emp_id} here by declare that I am pressing exit with the reason' .format(emp_name=emp_name, emp_id=emp_id), default=False) ], [ sg.InputCombo(values=[ 'Higher Studies', 'Personal Issues', 'Joining new company' ], default_value='Higher Studies', key='_COMBO_', enable_events=False, readonly=False, tooltip='Reason for exit', disabled=False, size=(40, 1)) ], [sg.Submit(), sg.Cancel()]] button, values = form.Layout(layout).Read() if button == "Submit": return 1 else: return 0
def ventan_principal(): """ genera el layout con la ventana de inicio del juego """ opciones_de_inicio = [ [sg.Button("Comenzar", size=tamanio_Boton_De_Control)], [sg.Button("Cargar Partida", size=tamanio_Boton_De_Control)], [sg.Button('Configuracion', size=tamanio_Boton_De_Control)], [ sg.InputCombo(dificultad, default_value='Facil', size=(10, 10), key='dificultad') ], [sg.Button("TOP", size=tamanio_Boton_De_Control)], [ sg.Button('Guardar Partida', size=tamanio_Boton_De_Control, visible=False) ], [sg.Button('Salir', size=tamanio_Boton_De_Control)], [ sg.Button('Ayuda', size=(5, 1), visible=False, pad=((5, 0), (60, 0))) ] ] return opciones_de_inicio
def returnLayout(self): '''Часть Layout отвечающая за формирование строки сопроводительной ''' mol = [[[ sg.InputCombo(names, size=(20, 1), key='mar' + str(i + 1), pad=(0, 1)), sg.InputText(key='ves' + str(i + 1), size=(12, 1), pad=(20, 1)), sg.InputText('0', key='-zasor-' + str(i + 1), size=(3, 1), pad=(45, 1)), sg.Text(background_color='#639A67', key='res' + str(i + 1), size=(10, 1), pad=(10, 1), enable_events=True, text_color='white') ]] for i in range(self.myRow)] layout = self.returnHeader() + [ [sg.Column(mol[x], key='col' + str(x + 1), visible=False)] for x in range(self.myRow) ] + self.returnColButton() + self.returnExitMesagge() return layout
def cby_gui(): import PySimpleGUI as sg sg.ChangeLookAndFeel('LightBlue3') form = sg.FlexForm('Carby', default_element_size=(40, 1)) combos = [] # Build combo box list, which is simply comprised of the keys of the Co2 dictionary, further below for key in dict_Co2.keys(): combos.append(key) layout = [ [sg.Text('Carby - Travel Co2 Emission Estimator', size=(30, 1), font=("Helvetica", 25))], [sg.Text('Enter "From" location .... Enter "To" location....')], [sg.Multiline(default_text='', size=(35, 3)), sg.Multiline(default_text='', size=(35, 3))], [sg.Text('Select Mode of Transport')], [sg.InputCombo((combos), default_value="Entity", size=(80, 3))], [sg.Text('_' * 80)], [sg.Submit(), sg.Exit()] ] button, values = form.Layout(layout).Read() form.close() print(button) return((button,values))
def pedir_fuente(): ''' Pide al profesor la fuente con la que quiere mostrar el reporte ''' layout = [[ sg.T('Elija la funete con la quiere que se presente el reporte') ], [ sg.InputCombo([ 'Arial 12', 'Courier 12', 'Comic 12', 'Fixedsys 12', 'Times 12', 'Verdana 12' ], size=(10, 10), key='fuente') ], [sg.Submit('Enviar')]] window = sg.Window('Fuente del Reporte').Layout(layout) event, values = window.Read() if (event == 'Enviar'): print('enviado') else: window.Close() os._exit(1) file = open('reporte.json') try: dic = json.load(file) except json.decoder.JSONDecodeError: #SI el Json estaba vacio sg.Popup('Archivo reporte.json Vacio') window.Close() os._exit(1) else: window.Close() return (values['fuente'], dic)
def create_log_window(database): log_layout = [ [sg.Text("Fault description", size=(12,1)), sg.In(size=(40, 40), key='-DESCRIPTION-')], [sg.Text("Fault message", size=(12,1)), sg.In(size=(40, 40), key='-MESSAGE-')], [sg.Text("Status", size=(12,1)), sg.InputCombo(["Unresolved", "Resolved"], key='-STATUS-')], [sg.Text("Fault type", size=(12,1)), sg.In(size = (25, 1), key='-TYPE-')], [sg.Text("Location", size=(12,1)), sg.In(size=(25, 1), key='-LOCATION-')], [sg.Text("Sensor ID", size=(12,1)), sg.In(size=(25, 1), key='-SENSOR ID-')], [sg.Text("Sensor type", size=(12,1)), sg.In(size=(25, 1), key='-SENSOR TYPE-')], [sg.Text("Time of fault", tooltip = "dd-mm-yy hh:mm:ss", size=(12,1)), sg.In(size=(25, 1), key='-START-')], [sg.Text("Time of solution", tooltip = "dd-mm-yy hh:mm:ss", size=(12,1)), sg.In(size=(25, 1), key='-END-')], [sg.Text("Voyage", size=(12,1)), sg.In(size=(25, 1), key='-VOYAGE-')], [sg.Button("Save", enable_events=True, key='-LOG SAVE-'), sg.Button("Cancel", enable_events=True, key='-LOG CANCEL-')] ] log_window = sg.Window("LLMSDID - Log an error", layout=log_layout, margins=(200, 100), grab_anywhere=True, default_button_element_size=(12, 1) ) while True: log_event, log_values = log_window.read() if log_event == '-LOG SAVE-': database.save_to_errors(log_values['-STATUS-'], log_values['-DESCRIPTION-'], log_values['-VOYAGE-'], log_values['-START-'], log_values['-END-'], log_values['-TYPE-'], log_values['-LOCATION-'], log_values['-SENSOR ID-'], log_values['-SENSOR TYPE-'], log_values['-MESSAGE-']) log_window.close() break # If the user closes the window, exit this loop so that the program can close if log_event == sg.WIN_CLOSED or log_event == '-LOG CANCEL-': log_window.close() break
def Everything_NoContextManager(): form = sg.FlexForm('Everything bagel', default_element_size=(40, 1)) layout = [ [sg.Text('All graphic widgets in one form!', size=(30, 1), font=("Helvetica", 25))], [sg.Text('Here is some text.... and a place to enter text')], [sg.InputText('This is my text')], [sg.Checkbox('My first checkbox!'), sg.Checkbox('My second checkbox!', default=True)], [sg.Radio('My first Radio! ', "RADIO1", default=True), sg.Radio('My second Radio!', "RADIO1")], [sg.Multiline(default_text='This is the default Text should you decide not to type anything', size=(35, 3)), sg.Multiline(default_text='A second multi-line', size=(35, 3))], [sg.InputCombo(('Combobox 1', 'Combobox 2'), size=(20, 3)), sg.Slider(range=(1, 100), orientation='h', size=(34, 20), default_value=85)], [sg.Listbox(values=('Listbox 1', 'Listbox 2', 'Listbox 3'), size=(30, 3)), sg.Slider(range=(1, 100), orientation='v', size=(5, 20), default_value=25), sg.Slider(range=(1, 100), orientation='v', size=(5, 20), default_value=75), sg.Slider(range=(1, 100), orientation='v', size=(5, 20), default_value=10), sg.Spin(values=('Spin Box 1', '2', '3'), initial_value='Spin Box 1')], [sg.Text('_' * 80)], [sg.Text('Choose A Folder', size=(35, 1))], [sg.Text('Your Folder', size=(15, 1), auto_size_text=False, justification='right'), sg.InputText('Default Folder'), sg.FolderBrowse()], [sg.Submit(), sg.Cancel()] ] button, values = form.LayoutAndRead(layout) del(form) sg.Popup('Title', 'The results of the form.', 'The button clicked was "{}"'.format(button), 'The values are', values)
def init_components(self): layout = [ [sg.Text('Ola, seja bem vindo!')], [sg.Text('Escolha a opcao desejada: ')], [sg.Button('Cadastrar cliente'), sg.Button('Excluir cliente'), sg.Button('Ver clientes'), sg.Button('Ver clientes excluidos')], [sg.Button('Ver pedidos'), sg.Button('Excluir pedido'), sg.Button('Alterar pedido'), sg.Button('Ver pedidos excluidos')], [sg.Button('Sair')] ] self.__window = sg.Window('Larikas', default_element_size=(50,20)).Layout(layout) layout_cpf = [ [sg.Text('Digite o cpf do cliente'), sg.In()], [sg.Button('Ok'), sg.Button('Cancelar')] ] self.__window_cpf = sg.Window('Exclusao cliente', default_element_size=(50,20)).Layout(layout_cpf) layout_pedido = [ [sg.Text('Digite o codigo do pedido'), sg.In()], [sg.Button('Ok'), sg.Button('Cancelar')] ] self.__window_pedido = sg.Window('Alteracao pedido', default_element_size=(50,20)).Layout(layout_pedido) layout_pedido_status = [ [sg.Text('Digite o codigo do pedido e o novo status'), sg.In(), sg.InputCombo(('Pedido Aceito', 'Pedido a Caminho'), default_value='Pedido Aceito')], [sg.Button('Ok'), sg.Button('Cancelar')] ] self.__window_pedido_status = sg.Window('Alteracao pedido', default_element_size=(50,20)).Layout(layout_pedido_status)
def returnLayout(self): '''Часть Layout отвечающая за формирование строки сопроводительной ''' mol = [[[ sg.InputCombo(names, size=(20, 1), key='mar' + str(i + 1), pad=(0, 1)), sg.InputText(key='ves' + str(i + 1), size=(12, 1), pad=(20, 1)), sg.InputText('0', key='-zasor-' + str(i + 1), size=(3, 1), pad=(45, 1)), sg.Text(background_color='#4B8E8D', key='res' + str(i + 1), size=(10, 1), pad=(10, 1), enable_events=True, text_color='white') ]] for i in range(self.myRow)] layout = self.returnHeader() + [ [sg.Column(mol[x], key='col' + str(x + 1), visible=False)] for x in range(self.myRow) ] + self.returnColButton() + self.returnExitMesagge() # window = sg.Window('Формирование поступления материала', layout, auto_size_text=True, finalize=True) # return window return layout
def ajustes(configuracion): n = [] for i in range(1,21): n.append(str(i)) diseño = [[sg.Text("Configuracion ScrabbleAr", size = (20, 1), font = ("Times New Roman", 16))], [sg.Text('Dificultad:'), sg.DropDown(('Facil','Medio','Dificil'), default_value = ('medio'), size = (20,1))], [sg.Text('Tiempo:', size = (20, 1)), sg.InputCombo((n), size = (5,1), default_value = '10')], [sg.Button('Guardar', size = (13, 1), key = 'Guardo'), sg.Exit('Regresar', size = (13, 1), key = 'Regreso')]] window = sg.Window('Configuracion', diseño) while True: evento, validacion = window.Read() if evento in ('Guardo'): try: dificultad, tiempo = dificultadYTiempo(validacion[0],validacion[1]) if(dificultad == None): sg.popup('ingrese valores validos') continue except ValueError: sg.popup('ingrese valores validos') else: configuracion['Dificultad'] = dificultad configuracion['Tiempo'] = tiempo elif evento in (None, 'Regreso'): break window.close() return configuracion
def gui(): sg.theme("Reddit") layout = [[ sg.InputCombo(('New character', 'Full attention'), size=(20, 1)) ], [sg.Button("Submit")]] #creates combobox for values window = sg.Window('Attention grabber', layout, size=(300, 100)) while True: event, task = window.read() if event == sg.WIN_CLOSED or event == "Exit": sg.popup("Made by: Hampus Tuokkola, Zozk Mohamed & Samuel Östeby", title="Attention grabber") break elif event == "Submit": location = sg.popup_get_folder("Please input your desired folder.", title="Attention grabber") outputname = sg.popup_get_text( "Please input the name of the output.", title="Attention grabber") try: driver(task[0], location, outputname) sg.popup("Success", auto_close_duration=1) except: sg.popup("Error", auto_close_duration=2) pass
def Everything(): # sg.ChangeLookAndFeel('LightGreen') # sg.SetOptions(input_elements_background_color=sg.COLOR_SYSTEM_DEFAULT) form = sg.FlexForm('Everything bagel', default_element_size=(40, 1)) column1 = [[sg.Text('Column 1', background_color='#d3dfda', justification='center', size=(10, 1))], [sg.Spin(values=('Spin Box 1', '2', '3'), initial_value='Spin Box 1')], [sg.Spin(values=('Spin Box 1', '2', '3'), initial_value='Spin Box 2')], [sg.Spin(values=('Spin Box 1', '2', '3'), initial_value='Spin Box 3')]] layout = [ [sg.Text('All graphic widgets in one form!', size=(30, 1), font=("Helvetica", 25))], [sg.Text('Here is some text.... and a place to enter text')], [sg.InputText('This is my text')], [sg.Checkbox('My first checkbox!'), sg.Checkbox('My second checkbox!', default=True)], [sg.Radio('My first Radio! ', "RADIO1", default=True), sg.Radio('My second Radio!', "RADIO1")], [sg.Multiline(default_text='This is the default Text should you decide not to type anything', size=(35, 3)), sg.Multiline(default_text='A second multi-line', size=(35, 3))], [sg.InputCombo(('Combobox 1', 'Combobox 2'), size=(20, 1)), sg.Slider(range=(1, 100), orientation='h', size=(34, 20), default_value=85)], [sg.Listbox(values=('Listbox 1', 'Listbox 2', 'Listbox 3'), size=(30, 3)), sg.Slider(range=(1, 100), orientation='v', size=(5, 20), default_value=25), sg.Slider(range=(1, 100), orientation='v', size=(5, 20), default_value=75), sg.Slider(range=(1, 100), orientation='v', size=(5, 20), default_value=10), sg.Column(column1, background_color='#d3dfda')], [sg.Text('_' * 80)], [sg.Text('Choose A Folder', size=(35, 1))], [sg.Text('Your Folder', size=(15, 1), auto_size_text=False, justification='right'), sg.InputText('Default Folder'), sg.FolderBrowse()], [sg.Submit(), sg.Cancel()] ] button, values = form.LayoutAndRead(layout)
def __init__(self, lista): self.lista = lista self.lista = [item.titulo for item in self.lista] self.layout = [ [sg.InputCombo(self.lista, size=(100, 50))], [sg.Submit("Selecionar")], ]
def elegir_oficina(): ''' Pide al profesor la oficina. Retorna el look and feel ''' look = 'GreenTan' file = open('datos-oficina.json', 'r') try: dic = json.load(file) file.close() layout = [[ sg.InputCombo(list(dic.keys()), size=(20, 10)), sg.Submit('Enviar') ]] window = sg.Window('Oficina').Layout(layout) event, values = window.Read() if (event == 'Enviar'): oficina = values[0] ultimo_registro = dic[oficina][ -1] #Nos quedamos con el ultimo registro, el ultimo diccionario temperatura = int(ultimo_registro['temperatura']) if (temperatura <= 15): look = 'BlueMono' elif (temperatura > 15 and temperatura <= 28): look = 'SandyBeach' else: look = 'Purple' window.Close() except json.decoder.JSONDecodeError: #Si no hay datos de oficinas en el archivo print('Archivo vacío') finally: return look
def __init__(self): self.mult_results = { "pic_enable": "", "pic_res": " default", "vid_enable": "", "vid_frames": "", "vid_length": "", "vid_enable_txt": "" } self.get_db_data() self.frame_pic_layout = [[ sg.Checkbox('Enable Pics', key="chk_pic", disabled=True, default=True) ], [ sg.T('Pic Res'), sg.Input(size=(12, 1), default_text=" default", disabled=True) ]] self.frame_vid_layout = [ [ sg.T('Video Rec'), sg.InputCombo( ('Enabled', 'Disabled'), size=(10, 1), key="vid_rec", default_value=self.mult_results['vid_enable_txt']) ], [ sg.T('Video Frames'), sg.Input(size=(12, 1), key="txt_vid_frames", default_text=self.mult_results["vid_frames"]) ], [ sg.T('Video Length'), sg.Input(size=(12, 1), key="txt_vid_length", default_text=self.mult_results["vid_length"]) ] ] self.layout = [[ sg.Frame('Pictures', self.frame_pic_layout, font='Any 12', title_color='blue') ], [ sg.Frame('Videos', self.frame_vid_layout, font='Any 12', title_color='blue') ], [sg.Button("Save")]] self.create_gui()
def obter_dados(self, lista_clientes): clientes = [] for cliente in lista_clientes: cod_nome = str(cliente['codigo']) + ' - ' + str(cliente['nome']) clientes.append(cod_nome) layout = [ [sg.Text('Cadastro de Anúncios. Informe os dados soliciados.',\ justification = 'center')], [sg.Text('Título: *'), sg.InputText(size=(30,10),key='-titulo-')], [sg.Text('Cliente: *'), sg.InputCombo(clientes, key='-cliente-')], [sg.In(key = '-data_inicio-', visible = False),\ sg.CalendarButton('Selecionar Data de Inicio*',\ target = '-data_inicio-', pad = None, key = '-cal_inicio-')], [sg.In(key = '-data_fim-', visible = False),\ sg.CalendarButton('Selecionar Data de Fim*',\ target = '-data_fim-', pad = None, key = '-cal_fim-')], [sg.Text('Investimento Diário: *R$'), \ sg.InputText(size=(17,10),key='-investimento-')], [sg.ReadButton('Cadastrar'),sg.ReadButton('Voltar')] ] self.__window = sg.Window('Cadastro de Anúncio').Layout(layout) button, values = self.__window.Read() self.__window.Close() if button == 'Cadastrar': dados = {'titulo': values['-titulo-'],'cliente': values['-cliente-'],\ 'data_inicio': values['-data_inicio-'], 'data_fim': \ values['-data_fim-'], 'investimento': values['-investimento-']} if button == 'Voltar' or button == sg.WIN_CLOSED: dados = None return dados
def elegir_oficina(): ''' DEVUELVE UN STRING CON EL "LookAndFeel" QUE SE VA A USAR ''' from registro_ambiental import cargar lookAndFeel = 'SystemDefault' dic = cargar() if len(list(dic.values())) > 0: layout = [[sg.T('Seleccione una de las oficinas de la lista.')], [sg.InputCombo(list(dic.keys()), size=(20, 10), key='ofi')], [sg.CloseButton('Seleccionar')]] window = sg.Window('Elegir Oficina').Layout(layout) event, buttons = window.Read() if event == 'Seleccionar': oficina = buttons['ofi'] tempe = dic[oficina][-1] temperatura = tempe['Temperatura'] if temperatura <= 10: lookAndFeel = 'TealMono' elif temperatura > 10 and temperatura <= 30: lookAndFeel = 'DarkBlue' else: lookAndFeel = 'Reddit' return lookAndFeel
def DatabaseChoose(databases): # extract dbname from dictionary dbList = [] for dbId in databases: dbList.append(dbId) layout = [[ sg.Text('Database Selector', font=("Helvetica", 15), size=(20, 1), text_color='green') ], [sg.Text('File Selection', font=("Helvetica", 15), size=(20, 1))], [ sg.Text('UserName', size=(22, 1)), sg.InputText(size=(65, 1), key='username') ], [sg.Text('_' * 250, auto_size_text=False, size=(100, 1))], [ sg.Text('Choose Database', size=(22, 1)), sg.InputCombo(values=dbList, size=(30, 1), key='database') ], [sg.Text('_' * 250, auto_size_text=False, size=(100, 1))], [sg.Text(size=(40, 1), key='-OUTPUT-', text_color='red')], [ sg.Submit(size=(8, 1), button_color=('red', 'white'), font=("Helvetica", 15), bind_return_key=True), sg.Text(' ' * 2, size=(4, 1)), sg.Cancel(size=(8, 1), font=("Helvetica", 15)) ]] window = sg.Window('Database Selector', auto_size_text=False, default_element_size=(30, 1), font=("Helvetica", 12)).Layout(layout) while True: event, values = window.read() print('button is: {}, values is: {}'.format(event, values)) if event == 'Submit': print('user hit submit button. values: {}'.format(values)) message = '' if not values['username']: message += 'You must enter a username. ' if not values['database']: message += 'You must select one database. ' # message is not null so display it and try again if message: window['-OUTPUT-'].update(message) else: print('got what we needed') break elif event in (sg.WIN_CLOSED, 'Cancel'): print('breaking out of loop due to event {}'.format(event)) break else: print('Unknown event: {}'.format(event)) window.close() return values