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
Exemple #2
0
    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')
Exemple #3
0
    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')	
Exemple #7
0
	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')
Exemple #8
0
    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')
Exemple #9
0
    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()
Exemple #10
0
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
Exemple #11
0
    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()
Exemple #12
0
 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()
Exemple #13
0
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()
Exemple #14
0
	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()
Exemple #15
0
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()
Exemple #16
0
    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()
Exemple #17
0
	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()
Exemple #18
0
    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')