-1
I’ve asked a question before about this project... But anyway, I worked on it and added the Menu class, which is a daughter class of the Windows class. Follow the source of the main.py code file.:
#!/usr/bin/python3
from janela import *
menu=Menu(["Roboto",10],"LavenderBlush",[1,40],('250x170'),"MENU")
Now the window.py file:
#!/usr/bin/python3
from tkinter import *
from criar_widgets import *
class Janelas:
def __init__(self,fonte,fundo,titulo):
#Esta é a variável da janela mãe
self.root = Tk()
#Esta é a cor de fundo da janela
self.root["bg"]=fundo
#Este é o título
self.titulo=Criar_Label_Titulo(self.root,titulo,fonte,fundo)
return
class Menu(Janelas):
def __init__(self,fonte,fundo,xy,tela,titulo):
super().__init__(fonte,fundo,titulo)
abaixar,alinhar=30,70
self.bt_login=Criar_Button(self.root,"LOGIN",fonte,fundo,lambda:Autenticar(self.root, fonte, fundo, xy,"250x170","LOGIN",False))
self.bt_cadastrar=Criar_Button(self.root,"CADASTRO",fonte,fundo,lambda:Cadastro(self.root,fonte, fundo,xy,"400x200","CADASTRO",False))
class Autenticar(Janelas):
def __init__(self,janela_antiga,fonte,fundo,xy,tela,titulo):
janela_antiga.destroy()
super().__init__(fonte,fundo,titulo)
abaixar,alinhar=30,70
self.user=Criar_Label(self.root,"USUÁRIO",xy[0],xy[1],fonte,fundo)
self.entrar_user=Criar_Entry(self.root,xy[0]+alinhar,xy[1],fonte,False)
#Label e entrada da senha respectivamente
self.senha=Criar_Label(self.root,"SENHA",xy[0],xy[1]+abaixar,fonte,fundo)
self.entrar_senha=Criar_Entry(self.root,xy[0]+alinhar,xy[1]+abaixar,fonte,True)
#Botão que fará a mudança para uma nova tela
self.botao=Criar_Button(self.root,"INSERIR NOME",fonte,fundo,lambda:Autenticar.login(self.root, self.entrar_user.entry.get(), self.entrar_senha.entry.get()))
#Este é o tamanho da janela
self.root.geometry(tela)
self.root.mainloop()
def login(root,usuario,senha):
if usuario == "" and senha == "":
#print("Tudo certo, podemos fazer a próxima janela")
nova_janela=Cadastrar(root,["Roboto",10],"LavenderBlush",[1,40],('400x200'),"AUTENTICAR",False)
class Cadastrar(Janelas):
def __init__(self,janela_antiga,fonte,fundo,xy,tela,titulo):
#Adeus janela antiga
janela_antiga.destroy()
#olá janela nova
super().__init__(fonte,fundo,titulo)
#As variáveis a seguir serão usadas para alinhar e abaixar cada widget
abaixar,alinhar=30,150
#Label e entrada do nome
self.nome=Criar_Label(self.root,"NOME",xy[0],xy[1],fonte,fundo)
self.entrar_nome=Criar_Entry(self.root,xy[0]+alinhar,xy[1],fonte,False)
self.genero=Criar_Label(self.root,"GÊNERO",xy[0],xy[1]+abaixar,fonte,fundo)
self.entrar_genero=Criar_Entry(self.root,xy[0]+alinhar,xy[1]+abaixar,fonte,False)
#Abaixar widgets mais 30 pixels
abaixar+=30
self.data_nascimento=Criar_Label(self.root,"DATA NASCIMENTO",xy[0],xy[1]+abaixar,fonte,fundo)
self.entrar_data_nascimento=Criar_Entry(self.root,xy[0]+alinhar,xy[1]+abaixar,fonte,False)
#Abaixar widgets mais 30 pixels
abaixar+=30
self.idade=Criar_Label(self.root,"IDADE",xy[0],xy[1]+abaixar,fonte,fundo)
self.entrar_idade=Criar_Entry(self.root,xy[0]+alinhar,xy[1]+abaixar,fonte,False)
self.botao_cadastrar=Criar_Button(self.root,"CADASTRAR",fonte,fundo,Cadastrar.salvar)
self.root.geometry(tela)
self.root.mainloop()
def salvar():
print("O botao funciona!!!")
And finally the file creat_widgets.py (this one hasn’t touched lately, I think the error doesn’t come from here):
#!/usr/bin/python3
from tkinter import *
class Criar_Label:
def __init__(self,root,texto,abcissa,ordenada,fonte,fundo):
self.label=Label(root)
self.label["text"]=texto
self.label["font"]=fonte
self.label["bg"]=fundo
self.label.place(x=abcissa,y=ordenada)
#Será que deveríamos fazer polimorfismo aqui e fazer da classe Criar_Label a classe mãe?
class Criar_Label_Titulo:
def __init__(self,root2,texto,fonte,fundo):
self.titulo=Label(root2)
self.titulo["text"]=texto
self.titulo["font"]=fonte
self.titulo["bg"]=fundo
self.titulo.pack()
class Criar_Entry:
def __init__(self,root2,abcissa,ordenada,fonte,segredo):
self.entry=Entry(root2,font=fonte)
self.entry.place(x=abcissa,y=ordenada)
if segredo:
self.entry["show"]="*"
class Criar_Button:
def __init__(self,root2,texto,fonte,fundo,comando):
self.button=Button(root2)
self.button["text"]=texto
self.button["font"]=fonte
self.button["bg"]=fundo
self.button["command"]=comando
self.button.pack(side=BOTTOM)
It does not return ero and nothing, just does not run the script, since it worked perfectly before n can be nothing in the system (until I did not touch the system in the meantime).
The operating system used by me is "Xubuntu Linux version 5.0.0-36-Generic" Print from my terminal running the file and showing that it is there:
I really believe it’s not about the operating system or bad installation, just a change in code that must have been malicious and that I can’t find
It worked!!!! Thank you
– Bartô OS