예제 #1
0
파일: splicer.py 프로젝트: Kreyren/Splicer
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()
예제 #2
0
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!")
예제 #3
0
    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)
예제 #4
0
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)
예제 #5
0
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()
예제 #6
0
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)
예제 #7
0
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
예제 #8
0
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
예제 #9
0
 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)]
예제 #10
0
 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)]
예제 #11
0
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)
예제 #12
0
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")
        ],
    ]
예제 #13
0
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
예제 #14
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
예제 #15
0
    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
예제 #16
0
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))
예제 #17
0
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)
예제 #18
0
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
예제 #19
0
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)
예제 #20
0
    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)
예제 #21
0
    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
예제 #22
0
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
예제 #23
0
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
예제 #24
0
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)
예제 #25
0
 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")],
     ]
예제 #26
0
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
예제 #27
0
    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()
예제 #28
0
 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
예제 #30
0
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