def verificar_nome_deck(self, nome_deck): bd = Banco_dados() bd.conectar() nome_decks = bd.listar_decks(self.usuario) bd.fechar_banco() for i in nome_decks: if i == nome_deck: return False return True
def mostrar_deck(self): self.janela.geometry('460x190+550+150') self.toplevel = tkinter.Toplevel(self.janela) self.toplevel.group(self.janela) self.toplevel.protocol( 'WM_DELETE_WINDOW', lambda: messagebox.showinfo('Não', 'bobão, não pode fechar') ) # Reescreve o método de fechar janela (x) self.toplevel.minsize(400, 300) self.toplevel.maxsize(400, 300) #self.btM['state'] = tkinter.DISABLED # Chamada de banco de dados self.bd = Banco_dados(self.control.deck) self.bd.conectar() self.codigo_deck = self.bd.puxar_codigo_deck(self.control.deck) self.listbox = tkinter.Listbox(self.toplevel, font='-size 10', width=40, height=30, bd=0) self.listbox.bind('<Button-1>', self.card_selecionado) self.listbox.pack() try: self.deck = self.bd.puxar_deck(self.codigo_deck) deck_keys = list(self.deck.keys()) i = 0 i_2 = 1 for chave, valor in self.deck.items(): cod = self.bd.puxar_codigo_card(deck_keys[i]) a = str(deck_keys[i]) + ':' + str(self.deck[chave]) self.listbox.insert(i, a) i_2 += 1 i += 1 except: self.listbox.insert(1, 'ERRO: Não é possível exibir')
def verificaSenha(self): usuario = self.nomeLogin.get() senha = self.senhaLogin.get() self.bd = Banco_dados() self.bd.conectar() self.login = self.bd.puxar_login() if usuario != '' and senha != '': user = self.bd.puxar_login(username=usuario) email = self.bd.puxar_login(email=usuario) if user: if user[0][1] == senha: id_user = user[0][2] nome = user[0][3] messagebox.showinfo('Login', 'Bem vindo, ' + user[0][3]) self.Menu(id_user, nome) else: messagebox.showerror('Login','usuário e/ou senha inválidos') elif email: if email[0][1] == senha: id_user = email[0][2] nome = user[0][3] messagebox.showinfo('Login', 'Bem vindo, ' + email[0][3]) self.Menu(id_user, nome) else: messagebox.showerror('Login','usuário e/ou senha inválidos') elif usuario == '' and senha == '': messagebox.showerror('Login','Usuário e senha estão vazios') elif usuario == '': messagebox.showerror('Login','usuário está vazio') elif senha == '': messagebox.showerror('Login','senha está vazia') self.bd.fechar_banco()
def item_selecionado_excluir(self): try: resposta = messagebox.askquestion('Deletar baralho', 'Deseja mesmo deletar?') if resposta.lower() == 'no': self.atualizar() else: item_selecionado_listbox = self.listbox_3.curselection() item_selecionado_listbox = self.listbox_3.get(item_selecionado_listbox[0]) path_remove = self.dir_path + item_selecionado_listbox bd = Banco_dados() bd.conectar() bd.deletar_deck(item_selecionado_listbox) messagebox.showinfo('Sucesso', 'Banco excluído com sucesso') bd.fechar_banco() self.atualizar() except(IndexError): messagebox.showerror('Erro','Nenhum baralho foi selecionado')
def item_selecionado_renomear_2(self, item_selecionado_listbox): try: resposta = messagebox.askquestion('Renomear baralho', 'Deseja mesmo renomear?') if resposta.lower() == 'no': self.atualizar() else: bd = Banco_dados() bd.conectar() codigo = bd.puxar_codigo_deck(item_selecionado_listbox) novo_nome = self.ent3.get() self.control.deck = novo_nome if self.verificar_nome_deck(self.control.deck) == False: raise TypeError('Nome existente') elif self.control.deck == 'Erro: baralho está vazio': raise Exception('Vazio') bd.renomear_deck(self.control.deck, codigo) messagebox.showinfo('Sucesso', 'Baraho renomeado com sucesso') bd.fechar_banco() self.atualizar() except (TypeError): messagebox.showerror('Erro','Já existe um baralho com esse nome' ) except (Exception): messagebox.showerror('Erro','Deck está vazio')
def adicionar_decks(self): try: nome_deck = self.ent2.get() self.control.deck = nome_deck if self.verificar_nome_deck(self.control.deck) == False: raise TypeError('Deck com o mesmo nome já existente') elif self.control.deck == 'Erro: baralho está vazio': raise Exception('Vazio') bd = Banco_dados() bd.conectar() bd.inserir_deck(self.control.deck, self.usuario) messagebox.showinfo('Sucesso', 'Baralho criado com sucesso') bd.fechar_banco() self.atualizar() except (TypeError): messagebox.showerror('Erro','Já existe um baralho com esse nome') except (Exception): messagebox.showerror('Erro','Nada foi escrito')
def item_selecionado_deck(self): try: item_selecionado_listbox = self.listbox.curselection() self.item_selecionado_listbox = self.listbox.get(item_selecionado_listbox[0]) bd = Banco_dados() bd.conectar() codigo = bd.puxar_codigo_deck(self.item_selecionado_listbox) deck = bd.puxar_deck(codigo) self.n_deck = len(deck.keys()) self.lbd1['text'] = 'Nome: ' + self.item_selecionado_listbox + '\n' + 'Cartões: ' + str(self.n_deck) except(IndexError): messagebox.showerror('Erro','Nenhum baralho foi selecionado')
def adicionar(self): try: if self.control.frente == '' or self.control.verso == '': raise Exception('Vazio') self.fechar_toplevel() f = self.ent1.get(1.0, tkinter.END) v = self.ent2.get(1.0, tkinter.END) self.control.frente = f self.control.verso = v #print(f,v) # TESTE bd = Banco_dados() bd.conectar() bd.inserir_card(self.control.frente, self.control.verso, self.codigo_deck) self.mostrar_deck() self.limpar_entries() bd.fechar_banco() #print('Sucesso') # TESTE except (AttributeError): self.fechar_toplevel() f = self.ent1.get(1.0, tkinter.END) v = self.ent2.get(1.0, tkinter.END) self.control.frente = f self.control.verso = v #print(f,v) # TESTE bd = Banco_dados() bd.conectar() bd.inserir_card(self.control.frente, self.control.verso, self.codigo_deck) bd.fechar_banco() self.mostrar_deck() self.limpar_entries() #print('Sucesso') # TESTE except (Exception): messagebox.showerror('Botão: Adicionar', 'ERRO: Frente ou verso estão vazios')
def __init__(self, nome_deck): self.janela = tkinter.Tk() self.janela.title('Configurações de card') self.janela.geometry("460x190+850+150") self.janela.resizable(0, 0) self.janela.protocol('WM_DELETE_WINDOW', lambda: self.janela.destroy()) # Chama da classe controladora de dados self.control = Deck() self.control.deck = nome_deck bd = Banco_dados() bd.conectar() self.codigo_deck = bd.puxar_codigo_deck(nome_deck) fram = tkinter.Frame(self.janela) fr = tkinter.Frame(fram) frameF = tkinter.LabelFrame(fr) lb1 = tkinter.Label(frameF, text='Frente:') lb1.pack(side=tkinter.LEFT) self.ent1 = tkinter.Text(frameF, width=30, height=4) self.ent1.pack() frameF.pack() frameV = tkinter.LabelFrame(fr) lb2 = tkinter.Label(frameV, text='Verso: ') lb2.pack(side=tkinter.LEFT) self.ent2 = tkinter.Text(frameV, width=30, height=4) self.ent2.pack() frameV.pack() framebt = tkinter.LabelFrame(fr) #self.btM=tkinter.Button(framebt,text="Mostar Cards",width=10,height=1, command=self.mostrar_deck) #self.btM.pack(side=tkinter.LEFT) btL = tkinter.Button(framebt, text="Limpar", width=10, height=1, command=self.limpar_entries) btL.pack(side=tkinter.RIGHT) framebt.pack(expand=1, fill=tkinter.BOTH) fr.pack(side=tkinter.LEFT) frameBot = tkinter.LabelFrame(fram, text="Cartãoº") btADIC = tkinter.Button(frameBot, text="Adicionar", command=self.adicionar) btADIC.pack(side=tkinter.BOTTOM, expand=1, fill=tkinter.BOTH) btDelet = tkinter.Button(frameBot, text="Deletar", command=self.remover) btDelet.pack(side=tkinter.BOTTOM, expand=1, fill=tkinter.BOTH) btALt = tkinter.Button(frameBot, text="Alterar", command=self.alterar) btALt.pack(side=tkinter.BOTTOM, expand=1, fill=tkinter.BOTH) frameBot.pack(side=tkinter.RIGHT, anchor=tkinter.N) fram.pack(anchor=tkinter.CENTER) self.mostrar_deck() self.janela.mainloop()
class Editar_cartoes: def __init__(self, nome_deck): self.janela = tkinter.Tk() self.janela.title('Configurações de card') self.janela.geometry("460x190+850+150") self.janela.resizable(0, 0) self.janela.protocol('WM_DELETE_WINDOW', lambda: self.janela.destroy()) # Chama da classe controladora de dados self.control = Deck() self.control.deck = nome_deck bd = Banco_dados() bd.conectar() self.codigo_deck = bd.puxar_codigo_deck(nome_deck) fram = tkinter.Frame(self.janela) fr = tkinter.Frame(fram) frameF = tkinter.LabelFrame(fr) lb1 = tkinter.Label(frameF, text='Frente:') lb1.pack(side=tkinter.LEFT) self.ent1 = tkinter.Text(frameF, width=30, height=4) self.ent1.pack() frameF.pack() frameV = tkinter.LabelFrame(fr) lb2 = tkinter.Label(frameV, text='Verso: ') lb2.pack(side=tkinter.LEFT) self.ent2 = tkinter.Text(frameV, width=30, height=4) self.ent2.pack() frameV.pack() framebt = tkinter.LabelFrame(fr) #self.btM=tkinter.Button(framebt,text="Mostar Cards",width=10,height=1, command=self.mostrar_deck) #self.btM.pack(side=tkinter.LEFT) btL = tkinter.Button(framebt, text="Limpar", width=10, height=1, command=self.limpar_entries) btL.pack(side=tkinter.RIGHT) framebt.pack(expand=1, fill=tkinter.BOTH) fr.pack(side=tkinter.LEFT) frameBot = tkinter.LabelFrame(fram, text="Cartãoº") btADIC = tkinter.Button(frameBot, text="Adicionar", command=self.adicionar) btADIC.pack(side=tkinter.BOTTOM, expand=1, fill=tkinter.BOTH) btDelet = tkinter.Button(frameBot, text="Deletar", command=self.remover) btDelet.pack(side=tkinter.BOTTOM, expand=1, fill=tkinter.BOTH) btALt = tkinter.Button(frameBot, text="Alterar", command=self.alterar) btALt.pack(side=tkinter.BOTTOM, expand=1, fill=tkinter.BOTH) frameBot.pack(side=tkinter.RIGHT, anchor=tkinter.N) fram.pack(anchor=tkinter.CENTER) self.mostrar_deck() self.janela.mainloop() # método adicionador de cards def adicionar(self): try: if self.control.frente == '' or self.control.verso == '': raise Exception('Vazio') self.fechar_toplevel() f = self.ent1.get(1.0, tkinter.END) v = self.ent2.get(1.0, tkinter.END) self.control.frente = f self.control.verso = v #print(f,v) # TESTE bd = Banco_dados() bd.conectar() bd.inserir_card(self.control.frente, self.control.verso, self.codigo_deck) self.mostrar_deck() self.limpar_entries() bd.fechar_banco() #print('Sucesso') # TESTE except (AttributeError): self.fechar_toplevel() f = self.ent1.get(1.0, tkinter.END) v = self.ent2.get(1.0, tkinter.END) self.control.frente = f self.control.verso = v #print(f,v) # TESTE bd = Banco_dados() bd.conectar() bd.inserir_card(self.control.frente, self.control.verso, self.codigo_deck) bd.fechar_banco() self.mostrar_deck() self.limpar_entries() #print('Sucesso') # TESTE except (Exception): messagebox.showerror('Botão: Adicionar', 'ERRO: Frente ou verso estão vazios') # método removedor de cards def remover(self): try: f = self.ent1.get(1.0, tkinter.END) self.control.frente = f bd = Banco_dados() bd.conectar() c = bd.puxar_codigo_card(self.control.frente) bd.deletar_card(c) self.fechar_toplevel() self.mostrar_deck() self.limpar_entries() bd.fechar_banco() #print('Sucesso') # TESTE except (TypeError): messagebox.showerror( 'Botão: Remover', 'ERRO: o código não corresponde, possiveis erros:\n1- verifique se o valor é um número\n2- verifique se a caixa não está vazia\n3- verifique se o codigo existe.' ) except (AttributeError): self.fechar_toplevel() bd = Banco_dados() bd.conectar() f = self.ent1.get(1.0, tkinter.END) c = bd.puxar_codigo_card(self.control.frente) bd.deletar_card(c) self.limpar_entries() bd.fechar_banco() self.mostrar_deck() #print('Sucesso') # TESTE # método alterador de cards def alterar(self): try: f = self.ent1.get(1.0, tkinter.END) v = self.ent2.get(1.0, tkinter.END) self.control.frente = f self.control.verso = v if self.control.frente == '' or self.control.verso == '': raise Exception('Vazio') bd = Banco_dados() bd.conectar() #self.control.codigo = c if self.frente_antigo: c = bd.puxar_codigo_card(self.frente_antigo) bd.alterar_card(c, self.control.frente, self.control.verso) self.fechar_toplevel() self.atualizar() self.mostrar_deck() self.limpar_entries() bd.fechar_banco() #print('Sucesso') # TESTE except (Exception): messagebox.showerror( 'Botão: Alterar', 'ERRO: o código não corresponde, possiveis erros:\n1- verifique se o valor é um número\n2- verifique se a caixa não está vazia\n3- verifique se o codigo existe.' ) except (AttributeError): self.fechar_toplevel() f = self.ent1.get(1.0, tkinter.END) v = self.ent2.get(1.0, tkinter.END) self.control.frente = f self.control.verso = v bd = Banco_dados() bd.conectar() c = bd.puxar_codigo_card(self.frente_antigo) bd.alterar_card(c, self.control.frente, self.control.verso) self.mostrar_deck() self.limpar_entries() bd.fechar_banco() #print('Sucesso') # TESTE #except (Exception): #messagebox.showerror('Botão: Alterar','ERRO: Frente ou verso estão vazios') # método de aviso sobre remoção de cards def adendo(self): tkinter.messagebox.showinfo( 'Adendo', '*Para remover ou pesquisar um card, insira somente o codigo do mesmo*' ) def limpar_entries(self): self.ent1.delete(1.0, tkinter.END) self.ent2.delete(1.0, tkinter.END) #self.ent3.delete(0,tkinter.END) def mostrar_deck(self): self.janela.geometry('460x190+550+150') self.toplevel = tkinter.Toplevel(self.janela) self.toplevel.group(self.janela) self.toplevel.protocol( 'WM_DELETE_WINDOW', lambda: messagebox.showinfo('Não', 'bobão, não pode fechar') ) # Reescreve o método de fechar janela (x) self.toplevel.minsize(400, 300) self.toplevel.maxsize(400, 300) #self.btM['state'] = tkinter.DISABLED # Chamada de banco de dados self.bd = Banco_dados(self.control.deck) self.bd.conectar() self.codigo_deck = self.bd.puxar_codigo_deck(self.control.deck) self.listbox = tkinter.Listbox(self.toplevel, font='-size 10', width=40, height=30, bd=0) self.listbox.bind('<Button-1>', self.card_selecionado) self.listbox.pack() try: self.deck = self.bd.puxar_deck(self.codigo_deck) deck_keys = list(self.deck.keys()) i = 0 i_2 = 1 for chave, valor in self.deck.items(): cod = self.bd.puxar_codigo_card(deck_keys[i]) a = str(deck_keys[i]) + ':' + str(self.deck[chave]) self.listbox.insert(i, a) i_2 += 1 i += 1 except: self.listbox.insert(1, 'ERRO: Não é possível exibir') def fechar_toplevel(self): self.toplevel.destroy() self.janela.geometry('460x190+550+150') #self.janela.geometry('400x200+100+100') # self.btM['state'] = tkinter.NORMAL self.deck = self.bd.puxar_deck(self.codigo_deck) self.frente_antigo = '' def card_selecionado(self, *args): self.janela.geometry("460x190+350+150") self.limpar_entries() card_codigo = self.listbox.curselection() card = self.listbox.get(card_codigo[0]) for i in range(len(card)): if card[i] == ':': i_2 = i + 1 self.frente_antigo = card[:i] self.verso_antigo = card[i_2:] self.ent1.insert(1.0, self.frente_antigo) self.ent2.insert(1.0, self.verso_antigo) self.janela.lift() def atualizar(self): pass
def alterar(self): try: f = self.ent1.get(1.0, tkinter.END) v = self.ent2.get(1.0, tkinter.END) self.control.frente = f self.control.verso = v if self.control.frente == '' or self.control.verso == '': raise Exception('Vazio') bd = Banco_dados() bd.conectar() #self.control.codigo = c if self.frente_antigo: c = bd.puxar_codigo_card(self.frente_antigo) bd.alterar_card(c, self.control.frente, self.control.verso) self.fechar_toplevel() self.atualizar() self.mostrar_deck() self.limpar_entries() bd.fechar_banco() #print('Sucesso') # TESTE except (Exception): messagebox.showerror( 'Botão: Alterar', 'ERRO: o código não corresponde, possiveis erros:\n1- verifique se o valor é um número\n2- verifique se a caixa não está vazia\n3- verifique se o codigo existe.' ) except (AttributeError): self.fechar_toplevel() f = self.ent1.get(1.0, tkinter.END) v = self.ent2.get(1.0, tkinter.END) self.control.frente = f self.control.verso = v bd = Banco_dados() bd.conectar() c = bd.puxar_codigo_card(self.frente_antigo) bd.alterar_card(c, self.control.frente, self.control.verso) self.mostrar_deck() self.limpar_entries() bd.fechar_banco()
def remover(self): try: f = self.ent1.get(1.0, tkinter.END) self.control.frente = f bd = Banco_dados() bd.conectar() c = bd.puxar_codigo_card(self.control.frente) bd.deletar_card(c) self.fechar_toplevel() self.mostrar_deck() self.limpar_entries() bd.fechar_banco() #print('Sucesso') # TESTE except (TypeError): messagebox.showerror( 'Botão: Remover', 'ERRO: o código não corresponde, possiveis erros:\n1- verifique se o valor é um número\n2- verifique se a caixa não está vazia\n3- verifique se o codigo existe.' ) except (AttributeError): self.fechar_toplevel() bd = Banco_dados() bd.conectar() f = self.ent1.get(1.0, tkinter.END) c = bd.puxar_codigo_card(self.control.frente) bd.deletar_card(c) self.limpar_entries() bd.fechar_banco() self.mostrar_deck()
class Flash_Card(): def __init__(self, nome_conjunto, modo, n_cards=None): self.janela = tkinter.Tk() self.janela.title('teste_EMA') self.janela.geometry('450x375+350+150') #self.janela.resizable(0,0) self.bd = Banco_dados(nome_conjunto) self.bd.conectar() self.numero_deck = self.bd.puxar_codigo_deck(nome_conjunto) self.conjunto_padrão = self.bd.puxar_deck(self.numero_deck) self.frente = tkinter.LabelFrame(self.janela, text="Frente:") self.frente.pack(fill=tkinter.BOTH, expand=1) self.framefrente = tkinter.Frame(self.frente, bd="5", width=350, height=150) self.framefrente.pack() self.verso = tkinter.LabelFrame(self.janela, text="Verso:") self.verso.pack(fill=tkinter.BOTH, expand=1) self.frameverso = tkinter.Frame(self.verso, bd="5", width=350, height=150) self.frameverso.pack() frameB = tkinter.Frame(self.janela) self.bt1 = tkinter.Button(frameB, text="Iniciar", width=20, height=5, command=self.iniciar) self.bt1.pack(side=tkinter.LEFT, anchor=tkinter.SW) self.bt2 = tkinter.Button(frameB, text="Mostrar", width=20, height=5, command=self.exibir) self.bt2.pack(side=tkinter.RIGHT, anchor=tkinter.SE) frameB.pack(side=tkinter.BOTTOM) self.bt3 = tkinter.Button(frameB, text="Acabou: Sair", width=20, height=5, command=lambda: self.janela.destroy()) frameB.pack(side=tkinter.BOTTOM) self.lb1 = tkinter.Label(self.framefrente) self.lb1.pack(side=tkinter.LEFT) self.lb2 = tkinter.Label(self.frameverso) self.lb2.pack() ''' self.bt1 = tkinter.Button(self.janela, text='começar', command=self.iniciar) self.bt1.place(x=100, y=250) self.bt2 = tkinter.Button(self.janela, text='mostrar',command=self.exibir) self.bt3 = tkinter.Button(self.janela, text='sair', command=lambda: self.janela.destroy()) #self.bt3.place(x=00,y=00) self.lb3 = tkinter.Label(self.janela) ''' if modo == 'padrão': self.index_pack = list(self.conjunto_padrão.keys()) elif modo == 'numero de cards': self.index_pack = list(self.conjunto_padrão.keys()) if len(self.index_pack) < n_cards: while len(self.index_pack) < n_cards: rand = choice(list(self.conjunto_padrão.keys())) self.index_pack.append(rand) print(self.index_pack) elif len(self.index_pack) > n_cards: while len(self.index_pack) > n_cards: rand = choice(list(self.conjunto_padrão.keys())) self.index_pack.remove(rand) print(self.index_pack) self.janela.mainloop() def iniciar(self): try: self.limpar() self.rd = choice(self.index_pack) for i in self.index_pack: if i == self.rd: #global n self.n = i #self.j = self.n -1 self.lb1['text'] = self.rd self.bt1['text'] = 'Continuar' self.bt1['state'] = tkinter.DISABLED #self.bt2.place(x=220,y=250) print(self.n) if self.rd in self.index_pack: self.index_pack.remove(self.rd) print(self.index_pack) except: self.limpar() #self.lb3['text'] = 'Acabou' #self.lb3.place(x=80,y=130) self.bt1['state'] = tkinter.DISABLED self.bt1.pack_forget() self.bt2['state'] = tkinter.DISABLED self.bt2.pack_forget() #self.bt3.place(x=0,y=0) self.bt3.pack(side=tkinter.RIGHT, anchor=tkinter.S) def exibir(self): self.lb2['text'] = self.conjunto_padrão[self.n] self.bt1['state'] = tkinter.ACTIVE def limpar(self): self.lb1['text'] = '' self.lb2['text'] = '' def fechar_janela(self): self.janela.destroy()
def __init__(self, usuario=None): self.usuario = usuario self.janela_configuracoes = tkinter.Tk() self.janela_configuracoes.title('Baralhos') self.control = Deck() self.janela_configuracoes.resizable(0,0) self.janela_configuracoes.geometry('+550+350') self.janela_configuracoes.protocol('WM_DELETE_WINDOW', lambda: self.janela_configuracoes.destroy()) if platform.system() == 'Linux': self.dir_path = os.path.dirname(os.path.realpath(__file__)) + '/Banco_armazenamento/db/Ema' bd = Banco_dados() bd.conectar() self.lista_decks = bd.listar_decks(self.usuario) bd.fechar_banco() elif platform.system() == 'Windows': self.dir_path = os.path.dirname(os.path.realpath(__file__)) + '\\Banco_armazenamento\\db\\Ema' bd = Banco_dados() bd.conectar() self.lista_decks = bd.listar_decks(self.usuario) bd.fechar_banco() self.frame = tkinter.Frame(self.janela_configuracoes) self.frame.pack(anchor=tkinter.CENTER) self.mb = tkinter.Menubutton ( self.frame, text = "Baralho", relief = tkinter.RAISED ) self.mb.pack(side=tkinter.LEFT) self.mb.menu = tkinter.Menu ( self.mb, tearoff = 0 ) self.mb["menu"] = self.mb.menu self.mb.menu.add_command(label='Criar', command=self.janela_adicionar_decks) self.bt2 = tkinter.Button(self.frame, text='Abrir baralho', command=self.janela_abrir_decks) self.bt2.pack(side=tkinter.LEFT) self.mb.menu.add_command(label='Editar cartões', command=self.janela_editar_decks) self.mb.menu.add_command(label='Deletar', command=self.janela_deletar_decks) self.mb.menu.add_command(label='Renomear', command=self.janela_renomear_deck) self.mb.pack() self.janela_configuracoes.mainloop()
class TelaLogin: def __init__(self): self.master = Tk() self.master.geometry('+500+200') self.master.resizable(0,0) self.master.title('Login') self.fontePadrao = ("Arial", "10") self.primeiroContainer = Frame(self.master) self.primeiroContainer["pady"] = 10 self.primeiroContainer.pack() self.segundoContainer = Frame(self.master) self.segundoContainer["padx"] = 20 self.segundoContainer.pack() self.terceiroContainer = Frame(self.master) self.terceiroContainer["padx"] = 20 self.terceiroContainer.pack() self.quartoContainer = Frame(self.master) self.quartoContainer["pady"] = 20 self.quartoContainer.pack() self.quintoContainer = Frame(self.master) self.quintoContainer["padx"] = 20 self.quintoContainer.pack() self.titulo = Label(self.primeiroContainer, text="Dados do usuário") self.titulo["font"] = ("Arial", "10", "bold") self.titulo.pack() self.nomeLabelLogin = Label(self.segundoContainer,text="Login", font=self.fontePadrao) self.nomeLabelLogin.pack(side=LEFT) self.nomeLogin = Entry(self.segundoContainer) self.nomeLogin["width"] = 30 self.nomeLogin["font"] = self.fontePadrao self.nomeLogin.pack(side=LEFT) self.senhaLabelLogin = Label(self.terceiroContainer, text="Senha", font=self.fontePadrao) self.senhaLabelLogin.pack(side=LEFT) self.senhaLogin = Entry(self.terceiroContainer) self.senhaLogin["width"] = 30 self.senhaLogin["font"] = self.fontePadrao self.senhaLogin["show"] = "*" self.senhaLogin.pack(side=LEFT) self.autenticarLogin = Button(self.quartoContainer) self.autenticarLogin["text"] = "Autenticar" self.autenticarLogin["font"] = ("Calibri", "8") self.autenticarLogin["width"] = 15 self.autenticarLogin["command"] = self.verificaSenha self.autenticarLogin.pack() self.mensagem = Label(self.quartoContainer, text="", font=self.fontePadrao) self.mensagem.pack() self.Cadastro = Label(self.quintoContainer,text="Ainda não cadastrado? Clique aqui->") self.Cadastro['font'] = self.fontePadrao self.Cadastro.pack(side=LEFT) self.BtC = Button(self.quintoContainer,text="Cadastrar-se", width= 10, command=self.cadastrar_toplevel) self.BtC['font'] = ("Calibri", "8") self.BtC.pack(side=LEFT) self.master.mainloop() #Método verificar senha def verificaSenha(self): usuario = self.nomeLogin.get() senha = self.senhaLogin.get() self.bd = Banco_dados() self.bd.conectar() self.login = self.bd.puxar_login() if usuario != '' and senha != '': user = self.bd.puxar_login(username=usuario) email = self.bd.puxar_login(email=usuario) if user: if user[0][1] == senha: id_user = user[0][2] nome = user[0][3] messagebox.showinfo('Login', 'Bem vindo, ' + user[0][3]) self.Menu(id_user, nome) else: messagebox.showerror('Login','usuário e/ou senha inválidos') elif email: if email[0][1] == senha: id_user = email[0][2] nome = user[0][3] messagebox.showinfo('Login', 'Bem vindo, ' + email[0][3]) self.Menu(id_user, nome) else: messagebox.showerror('Login','usuário e/ou senha inválidos') elif usuario == '' and senha == '': messagebox.showerror('Login','Usuário e senha estão vazios') elif usuario == '': messagebox.showerror('Login','usuário está vazio') elif senha == '': messagebox.showerror('Login','senha está vazia') self.bd.fechar_banco() def Menu(self, usuario, nome): self.master.destroy() menu = Menu(usuario, nome) def cadastrar_toplevel(self): self.autenticarLogin['state'] = DISABLED self.master.withdraw() self.toplevel = Toplevel(self.master) self.toplevel.protocol('WM_DELETE_WINDOW', lambda: self.sair()) self.toplevel.title('Cadastro') self.fontePadrao = ("Arial", "10") self.primeiroContainer = Frame(self.toplevel) self.primeiroContainer["pady"] = 10 self.primeiroContainer.pack() self.segundoContainer = Frame(self.toplevel) self.segundoContainer["padx"] = 20 self.segundoContainer.pack() self.terceiroContainer = Frame(self.toplevel) self.terceiroContainer["padx"] = 20 self.terceiroContainer.pack() self.quartoContainer = Frame(self.toplevel) self.quartoContainer["padx"] = 20 self.quartoContainer['pady'] = 0 self.quartoContainer.pack() self.quintoContainer = Frame(self.toplevel) self.quintoContainer["padx"] = 20 self.quintoContainer.pack() self.sextoContainer = Frame(self.toplevel) self.sextoContainer["padx"] = 30 self.sextoContainer.pack() self.setimoContainer = Frame(self.toplevel) self.setimoContainer["pady"] = 20 self.setimoContainer.pack() self.oitavoContainer = Frame(self.toplevel) self.oitavoContainer["padx"] = 20 self.oitavoContainer.pack() self.nonoContainer = Frame(self.toplevel) self.nonoContainer["padx"] = 40 self.nonoContainer.pack() self.titulo = Label(self.primeiroContainer, text=" Cadastrar Dados do usuário") self.titulo["font"] = ("Arial", "10", "bold") self.titulo.pack() self.nomeLabel = Label(self.segundoContainer,text="Nome", font=self.fontePadrao) self.nomeLabel.pack(side=LEFT) self.nome = Entry(self.segundoContainer) self.nome["width"] = 30 self.nome["font"] = self.fontePadrao self.nome.pack(side=LEFT) self.senhaLabel = Label(self.terceiroContainer, text="Senha", font=self.fontePadrao) self.senhaLabel.pack(side=LEFT) self.senha = Entry(self.terceiroContainer) self.senha["width"] = 29 self.senha["font"] = self.fontePadrao self.senha["show"] = "*" self.senha.pack(side=LEFT) self.repita_senhaLable = Label(self.quartoContainer, text='Senha *', font=self.fontePadrao) self.repita_senhaLable.pack(side=LEFT) self.repitaSenha = Entry(self.quartoContainer) self.repitaSenha["width"] = 28 self.repitaSenha["font"] = self.fontePadrao self.repitaSenha['show'] = '*' self.repitaSenha.pack(side=LEFT) self.email = Label(self.quintoContainer, text='E-mail', font=self.fontePadrao) self.email.pack(side=LEFT) self.emailEntry = Entry(self.quintoContainer) self.emailEntry["width"] = 29 self.emailEntry["font"] = self.fontePadrao self.emailEntry.pack(side=LEFT) self.username = Label(self.sextoContainer, text='Username', font=self.fontePadrao) self.username.pack(side=LEFT) self.usernameEntry = Entry(self.sextoContainer) self.usernameEntry["width"] = 26 self.usernameEntry["font"] = self.fontePadrao self.usernameEntry.pack(side=LEFT) self.autenticar = Button(self.setimoContainer, command=self.cadastrar) self.autenticar["text"] = "Cadastrar" self.autenticar["font"] = ("Calibri", "8") self.autenticar["width"] = 12 self.autenticar.pack(side=BOTTOM) def cadastrar(self): nome = self.nome.get() senha = self.senha.get() email = self.emailEntry.get() username = self.usernameEntry.get() senha_repetição = self.repitaSenha.get() self.usuario_control = Usuario() self.usuario_control.nome = nome self.usuario_control.senha = senha self.usuario_control.email = email self.usuario_control.username = username bd = Banco_dados() bd.conectar() user = bd.puxar_login(username=self.usuario_control.username) bd.fechar_banco() erro_1 = True erro_2 = True erro_3 = True erro_4 = True if senha == senha_repetição: try: if self.usuario_control.nome == 'nome não pode conter números' or self.usuario_control.nome == 'nome está vazio': erro_1 = False if self.usuario_control.senha == 'número de caracteres da senha insuficiente, mínimo 6' or self.usuario_control.senha == 'senha está vazia': erro_2 = False if self.usuario_control.email == 'email está vazio' or self.usuario_control.email == 'email não contem endereço correto': erro_3 = False if self.usuario_control.username == 'número de caracteres de usuário insuficiente, mínimo 4' or self.usuario_control.username == 'username está vazio': erro_4 = False if erro_1 == False and erro_2 == False and erro_3 == False and erro_4 == False: raise Exception(self.usuario_control.nome + '\n' + self.usuario_control.senha + '\n' + self.usuario_control.email + '\n' + self.usuario_control.username) elif erro_1 == False or erro_2 == False or erro_3 == False or erro_4 == False: erro_raise = '' n_erros = 1 if erro_1 == False: erro_raise = str(n_erros) + '- ' + self.usuario_control.nome + '\n' if erro_2 == False: erro_raise = erro_raise + '\n' +str(n_erros) + '- ' + self.usuario_control.senha + '\n' n_erros = n_erros + 1 if erro_3 == False: erro_raise = erro_raise + '\n' +str(n_erros) + '- ' + self.usuario_control.email + '\n' n_erros = n_erros + 1 if erro_4 == False: erro_raise = erro_raise + '\n' + str(n_erros) + '- ' + self.usuario_control.username n_erros = n_erros + 1 raise Exception(erro_raise) elif user: raise AttributeError('Usuario já cadastrado') else: bd = Banco_dados() bd.conectar() bd.criar_login(self.usuario_control.nome,self.usuario_control.username,self.usuario_control.senha, self.usuario_control.email) messagebox.showinfo('Sucesso', 'Usuário criado com sucesso') self.sair() except Exception as error: messagebox.showerror('Erros', error) except AttributeError: messagebox.showerror('Erro','username já registrado') else: messagebox.showerror('Login', 'senhas não batem') def sair(self): self.master.destroy() app = TelaLogin()
def __init__(self, nome_conjunto, modo, n_cards=None): self.janela = tkinter.Tk() self.janela.title('teste_EMA') self.janela.geometry('450x375+350+150') #self.janela.resizable(0,0) self.bd = Banco_dados(nome_conjunto) self.bd.conectar() self.numero_deck = self.bd.puxar_codigo_deck(nome_conjunto) self.conjunto_padrão = self.bd.puxar_deck(self.numero_deck) self.frente = tkinter.LabelFrame(self.janela, text="Frente:") self.frente.pack(fill=tkinter.BOTH, expand=1) self.framefrente = tkinter.Frame(self.frente, bd="5", width=350, height=150) self.framefrente.pack() self.verso = tkinter.LabelFrame(self.janela, text="Verso:") self.verso.pack(fill=tkinter.BOTH, expand=1) self.frameverso = tkinter.Frame(self.verso, bd="5", width=350, height=150) self.frameverso.pack() frameB = tkinter.Frame(self.janela) self.bt1 = tkinter.Button(frameB, text="Iniciar", width=20, height=5, command=self.iniciar) self.bt1.pack(side=tkinter.LEFT, anchor=tkinter.SW) self.bt2 = tkinter.Button(frameB, text="Mostrar", width=20, height=5, command=self.exibir) self.bt2.pack(side=tkinter.RIGHT, anchor=tkinter.SE) frameB.pack(side=tkinter.BOTTOM) self.bt3 = tkinter.Button(frameB, text="Acabou: Sair", width=20, height=5, command=lambda: self.janela.destroy()) frameB.pack(side=tkinter.BOTTOM) self.lb1 = tkinter.Label(self.framefrente) self.lb1.pack(side=tkinter.LEFT) self.lb2 = tkinter.Label(self.frameverso) self.lb2.pack() ''' self.bt1 = tkinter.Button(self.janela, text='começar', command=self.iniciar) self.bt1.place(x=100, y=250) self.bt2 = tkinter.Button(self.janela, text='mostrar',command=self.exibir) self.bt3 = tkinter.Button(self.janela, text='sair', command=lambda: self.janela.destroy()) #self.bt3.place(x=00,y=00) self.lb3 = tkinter.Label(self.janela) ''' if modo == 'padrão': self.index_pack = list(self.conjunto_padrão.keys()) elif modo == 'numero de cards': self.index_pack = list(self.conjunto_padrão.keys()) if len(self.index_pack) < n_cards: while len(self.index_pack) < n_cards: rand = choice(list(self.conjunto_padrão.keys())) self.index_pack.append(rand) print(self.index_pack) elif len(self.index_pack) > n_cards: while len(self.index_pack) > n_cards: rand = choice(list(self.conjunto_padrão.keys())) self.index_pack.remove(rand) print(self.index_pack) self.janela.mainloop()
def __init__(self, usuario): self.usuario = usuario self.janela_estudo = tkinter.Tk() self.janela_estudo.geometry("400x210+450+250") self.janela_estudo.resizable(0,0) self.janela_estudo.title('Estudar') self.janela_estudo.protocol('WM_DELETE_WINDOW', lambda: self.fechar_janela(self.janela_estudo)) self.modo = '' self.numero_cards = 0 if platform.system() == 'Linux': bd = Banco_dados() bd.conectar() self.lista_decks = bd.listar_decks(self.usuario) bd.fechar_banco() elif platform.system() == 'Windows': bd = Banco_dados() bd.conectar() self.lista_decks = bd.listar_decks(self.usuario) bd.fechar_banco() var = int() fram=tkinter.Frame(self.janela_estudo) fram.pack(anchor=tkinter.NW) frameS=tkinter.Frame(fram,width=170,height=210) frameS.pack(side=tkinter.LEFT) self.listbox = tkinter.Listbox(frameS) self.listbox.pack() self.selecionar_deck() self.btOP=tkinter.Button(frameS,text="Selecionar",command=self.item_selecionado_deck) self.btOP.pack(expand=1,fill=tkinter.BOTH) self.frOpcao=tkinter.Frame(fram,width=170,height=210) self.frDeck=tkinter.LabelFrame(self.frOpcao,text="Baralho selecionado") #self.lbD=tkinter.Label(self.frDeck,text="", font=("Arial","8","bold")) #self.lbD.pack() self.lbd1=tkinter.Label(self.frDeck,text="Nenhum baralho selecionado",font=("Arial","8","bold")) self.lbd1.pack() self.frDeck.pack(anchor=tkinter.NW) var=int() labSelect=tkinter.LabelFrame(self.frOpcao,text="Selecione o modo") labSelect.pack() rb1 = tkinter.Radiobutton(labSelect, text='Padrão', variable=var , value=1,command=self.selecionar_modo_1 ) rb1.pack(anchor=tkinter.NW) #rb1.select() rb2 = tkinter.Radiobutton(labSelect, text='Especificar número de cartões', variable=var, value=2,command=self.botao_selecionar_modo_2) rb2.pack(anchor=tkinter.NW) self.frNC= tkinter.LabelFrame(self.frOpcao) lbN= tkinter.Label(self.frNC,text="Nº") lbN.pack(side=tkinter.LEFT) self.entN=tkinter.Entry(self.frNC) self.entN.pack(side=tkinter.LEFT) self.frNC.pack() self.frNC.pack_forget() self.frOpcao.pack(side=tkinter.LEFT) self.frOpcao.pack_forget() self.btOPen=tkinter.Button(fram,text="Abrir",width=10,height=1, command=self.iniciar) self.btOPen.pack() self.btOPen.pack_forget() self.frOpcao.pack() self.btOPen.pack(side=tkinter.BOTTOM) self.janela_estudo.mainloop()
def cadastrar(self): nome = self.nome.get() senha = self.senha.get() email = self.emailEntry.get() username = self.usernameEntry.get() senha_repetição = self.repitaSenha.get() self.usuario_control = Usuario() self.usuario_control.nome = nome self.usuario_control.senha = senha self.usuario_control.email = email self.usuario_control.username = username bd = Banco_dados() bd.conectar() user = bd.puxar_login(username=self.usuario_control.username) bd.fechar_banco() erro_1 = True erro_2 = True erro_3 = True erro_4 = True if senha == senha_repetição: try: if self.usuario_control.nome == 'nome não pode conter números' or self.usuario_control.nome == 'nome está vazio': erro_1 = False if self.usuario_control.senha == 'número de caracteres da senha insuficiente, mínimo 6' or self.usuario_control.senha == 'senha está vazia': erro_2 = False if self.usuario_control.email == 'email está vazio' or self.usuario_control.email == 'email não contem endereço correto': erro_3 = False if self.usuario_control.username == 'número de caracteres de usuário insuficiente, mínimo 4' or self.usuario_control.username == 'username está vazio': erro_4 = False if erro_1 == False and erro_2 == False and erro_3 == False and erro_4 == False: raise Exception(self.usuario_control.nome + '\n' + self.usuario_control.senha + '\n' + self.usuario_control.email + '\n' + self.usuario_control.username) elif erro_1 == False or erro_2 == False or erro_3 == False or erro_4 == False: erro_raise = '' n_erros = 1 if erro_1 == False: erro_raise = str(n_erros) + '- ' + self.usuario_control.nome + '\n' if erro_2 == False: erro_raise = erro_raise + '\n' +str(n_erros) + '- ' + self.usuario_control.senha + '\n' n_erros = n_erros + 1 if erro_3 == False: erro_raise = erro_raise + '\n' +str(n_erros) + '- ' + self.usuario_control.email + '\n' n_erros = n_erros + 1 if erro_4 == False: erro_raise = erro_raise + '\n' + str(n_erros) + '- ' + self.usuario_control.username n_erros = n_erros + 1 raise Exception(erro_raise) elif user: raise AttributeError('Usuario já cadastrado') else: bd = Banco_dados() bd.conectar() bd.criar_login(self.usuario_control.nome,self.usuario_control.username,self.usuario_control.senha, self.usuario_control.email) messagebox.showinfo('Sucesso', 'Usuário criado com sucesso') self.sair() except Exception as error: messagebox.showerror('Erros', error) except AttributeError: messagebox.showerror('Erro','username já registrado') else: messagebox.showerror('Login', 'senhas não batem')