def tela_atualizacao(informacao_antiga): """ Tela para atualizar informações de um emprestimo já cadastrado. :param informacao_antiga: um dicionário contento todas as antigas informações do emprestimo. :return: uma lista de valores, contento o conteúdo dos InputText. """ layout = [ [Text("Atualizar emprestimo")], [ Text("Nome", size=(15, 1)), InputText(default_text=informacao_antiga['nome'], do_not_clear=True) ], [ Text("Telefone Fixo", size=(15, 1)), InputText(default_text=informacao_antiga['telefone'], do_not_clear=True) ], [ Text("Celular", size=(15, 1)), InputText(default_text=informacao_antiga['celular'], do_not_clear=True) ], [ Text("E-mail", size=(15, 1)), InputText(default_text=informacao_antiga['email'], do_not_clear=True) ], [ Text("De onde conhece", size=(15, 1)), InputText(default_text=informacao_antiga['vivencia'], do_not_clear=True) ], [ Text("Data", size=(15, 1)), InputText( default_text=informacao_antiga['data'].strftime("%d/%m/%Y"), do_not_clear=True) ], [ Text("Item", size=(15, 1)), InputText(default_text=informacao_antiga['item'], do_not_clear=True) ], [ Button("Atualizar", button_color=('white', 'springgreen4')), Cancel(button_text="Cancelar", button_color=('white', 'firebrick3')) ] ] janela = Window( "Cadastro", icon=('C:\\Loans-management\\Icon\\icon-logo.ico')).Layout(layout) botao, valores = janela.Read() print(valores) if botao == "Atualizar": janela.Close() return valores elif botao == 'Cancelar': janela.Close()
def tela_cadastro(): """ Tela para cadastro de novo emprestimo. :return: uma lista contento as informações inputadas. """ layout = [[Text("Cadastrar emprestimo")], [Text("Nome", size=(15, 1)), InputText()], [Text("Telefone Fixo", size=(15, 1)), InputText()], [Text("Celular", size=(15, 1)), InputText()], [Text("E-mail", size=(15, 1)), InputText()], [Text("De onde conhece", size=(15, 1)), InputText()], [ Text("Data", size=(15, 1)), InputText("ex: dia/mês/ano", do_not_clear=False) ], [Text("Item", size=(15, 1)), InputText()], [ Button("Cadastrar", button_color=('white', 'springgreen4')), Cancel(button_text="Cancelar", button_color=('white', 'firebrick3')) ]] janela = Window( "Cadastro", disable_close=True, icon=('C:\\Loans-management\\Icon\\icon-logo.ico')).Layout(layout) botao, valores = janela.Read() if botao == "Cadastrar": janela.Close() return valores elif botao == 'Cancelar' or botao is None: janela.Close()
def tela_excluir(): """ Tela para confirmação da exclusão de um emprestimo. :return: um valor booleano, para confirmação ou negação da ação. """ layout = [[Text('Tem certeza que deseja excluir?')], [ Button("Sim", size=(8, 1), button_color=('white', 'springgreen4'), pad=(20, 1)), Button("Não", size=(8, 1), button_color=('white', 'firebrick3')) ]] janela = Window( 'Excluir', icon=('C:\\Loans-management\\Icon\\icon-logo.ico')).Layout(layout) botao, evento = janela.Read() if botao == 'Sim': janela.Close() return True else: janela.Close() return False
def tela_escolha_busca(): """ Tela na qual o usuário escolhera qual o método de busca. :return: retorna uma string, sendo a escolha do usuário. """ layout_busca = [[T("Deseja buscar por:", size=(30, 1))], [ Button("Nome", button_color=('white', 'springgreen4'), size=(8, 1)), Button("Item", button_color=('white', 'springgreen4'), size=(8, 1)), Button("Ano", button_color=('white', 'springgreen4'), size=(8, 1)), Button("Mes + Ano", button_color=('white', 'springgreen4'), size=(10, 1)) ], [ Button("Cancelar", button_color=('white', 'firebrick3'), size=(8, 1), pad=(150, 0)) ]] janela_busca = Window( "Buscas", size=(400, 100), text_justification=('center'), icon=( 'C:\\Loans-management\\Icon\\icon-logo.ico')).Layout(layout_busca) botao_busca, valores_busca = janela_busca.Read() janela_busca.Close() return botao_busca
def process_window(window: sg.Window): """ Processes events, button clicks, for a detailed window :param window: The PySimpleGUI Window to work with :return: event: The button clicked or None if exited """ event, values = window.Read( timeout=0) # Read without waiting for button clicks if event in (None, 'Close'): window.Close() return None elif event == 'Action 1': window.Element('_ACTION_RESULT_').Update('Action 1 result = ' + str(randint(0, 1000))) elif event == 'Action 2': window.Element('_ACTION_RESULT_').Update('Action 2 result = ' + str(randint(-1000, 0))) # show dummy stats so can see window is live and operational window.Element('_INPUT_BYTES_').Update(randint(0, 40000)) window.Element('_OUTPUT_BYTES_').Update(randint(0, 40000)) return event # return the button clicked
def tela_busca(botao): """ tela na qual será informado o que o usuário deseja pesquisar. :param botao: uma string, que informará qual o método de busca. :return: retorna dado informado pelo usuário, que será usado em uma função de busca. """ if botao == 'Nome': layout_nome = [[T("Qual nome deseja buscar?", size=(30, 1))], [In(size=(30, 1)), Button("Buscar")]] janela_nome = Window("Busca Nome", size=(370, 100), icon=('C:\\Loans-management\\Icon\\icon-logo.ico' )).Layout(layout_nome) buscar, nome = janela_nome.Read() janela_nome.Close() return nome[0] if botao == 'Item': layout_item = [[T("Qual item deseja buscar?", size=(30, 1))], [In(size=(30, 1)), Button("Buscar")]] janela_item = Window("Busca Item", size=(370, 100), icon=('C:\\Loans-management\\Icon\\icon-logo.ico' )).Layout(layout_item) buscar, item = janela_item.Read() janela_item.Close() return item[0] if botao == 'Ano': layout_mes = [[T("Qual ano deseja buscar?", size=(30, 1))], [In(size=(30, 1)), Button("Buscar")]] janela_mes = Window("Busca Ano", size=(370, 100), icon=('C:\\Loans-management\\Icon\\icon-logo.ico' )).Layout(layout_mes) buscar, mes = janela_mes.Read() try: mes = datetime.strptime(mes[0], '%Y').date().year except TypeError and ValueError: janela_mes.Close() return Popup("Erro na Busca", button_color=('white', 'springgreen4')) janela_mes.Close() return mes if botao == 'Mes + Ano': layout_mes_ano = [[T("Qual mes e ano deseja buscar?", size=(30, 1))], [In("Ex: 10/2018", size=(30, 1)), Button("Buscar")]] janela_mes_ano = Window( "Busca Mes", size=(370, 100), icon=('C:\\Loans-management\\Icon\\icon-logo.ico' )).Layout(layout_mes_ano) buscar, mes_ano = janela_mes_ano.Read() try: mes_ano = datetime.strptime(mes_ano[0], '%m/%Y').date() except TypeError and ValueError: janela_mes_ano.Close() return Popup("Erro na Busca", button_color=('white', 'springgreen4')) janela_mes_ano.Close() return mes_ano if botao == 'Cancelar': return 0
]) column.append([ Input('Sheet Name', size=(25, 0)), Input('Indicator Name', size=(25, 0)) ]) layout2.append([ Column(column, scrollable=True, vertical_scroll_only=True, size=(450, 400)) ]) layout2.append([ Button('Next', key='toLayout3'), Button('Cancel', key='exit') ]) window.Close() window = Window('CompyrisonTool').Layout(layout2) except: Popup('Please enter a interger value') if (event == 'toLayout3'): fileList = list() fileItem = list() for i in range(0, len(values)): fileItem.append(values[i]) if len(fileItem) == 3: fileList.append(fileItem) fileItem = [] dataINframes = list() dataINlist = list()
elif evento == 'Editar': try: emprestimo = buscar_nome(valores['lista'][0]) novos_dados = tela_atualizacao(emprestimo) atualizacao = editar_emprestimo(valores['lista'][0], novos_dados) NOMES = get_informacoes() janela.FindElement('lista').Update(NOMES) except IndexError: pass elif evento == 'Apagar': try: confirmar = tela_excluir() if confirmar: exlcuir_emprestimo(valores['lista'][0]) NOMES = get_informacoes() janela.FindElement('Edit').Update(visible=False) janela.FindElement('lista').Update(NOMES) janela.FindElement('nome').Update('') janela.FindElement('telefone').Update('') janela.FindElement('celular').Update('') janela.FindElement('data').Update('') janela.FindElement('item').Update('') janela.FindElement('email').Update('') janela.FindElement('vivencia').Update('') except IndexError: pass elif evento is None or evento == 'Sair': janela.Close() break PopupNoButtons("Obrigado por usar nosso sistemas!!!", auto_close=True, auto_close_duration=1)