class JanelaDeCadastro(TKUtils.Janela()): def __init__(self, titulo): super().__init__() self.eventos = None self.titulo = titulo self.corpo = None self.botao_cancelar = None self.botao_confirmar = None def iniciar(self, texto, campos): self.texto = texto self.quantidade_de_campos = campos self.title(self.titulo) self.geometry('360x280') self.resizable(0, 0) self.criar_corpo() self.criar_botao_cancelar() self.criar_botao_confirmar() def criar_corpo(self): self.corpo = TKUtils.obter_container(master=self, cnf={'bd': 10}) def criar_botao_cancelar(self): cnf, grid = {}, {} cnf['text'] = 'Cancelar' cnf['bg'] = 'red' cnf['command'] = self.eventos['cancelar'] grid['row'] = self.quantidade_de_campos grid['column'] = 0 grid['sticky'] = 'W' self.botao_cancelar =\ TKUtils.obter_botao(master=self.corpo, cnf=cnf, grid=grid) def criar_botao_confirmar(self): cnf, grid = {}, {} cnf['text'] = self.texto cnf['bg'] = 'green' cnf['command'] = self.eventos['confirmar'] grid['row'] = self.quantidade_de_campos grid['column'] = 1 grid['sticky'] = 'E' grid['pady'] = 200 - self.quantidade_de_campos * 24 self.botao_confirmar =\ TKUtils.obter_botao(master=self.corpo, cnf=cnf, grid=grid)
class JanelaDeErro(TKUtils.Janela()): def __init__(self, erro): super().__init__() self.title('Janela de Erro') self.geometry(f'{len(erro) * 16}x140') self.resizable(0, 0) self.msg_de_erro = erro self.container = None self.label_de_erro = None self.botao_confirmar = None self.criar_container() def criar_container(self): cnf = {} cnf['bd'] = 10 self.container = TKUtils.obter_container(master=self, cnf=cnf) self.criar_label_de_erro() self.criar_botao_confirmar() def criar_label_de_erro(self): cnf, pack = {}, {} cnf['text'] = self.msg_de_erro cnf['fg'] = 'red' cnf['font'] = ('arial', 16, 'bold') pack['pady'] = 10 self.label_de_erro =\ TKUtils.obter_label(master=self, cnf=cnf, pack=pack) def criar_botao_confirmar(self): cnf, pack = {}, {} cnf['text'] = 'OK' cnf['bg'] = 'green' cnf['command'] = self.destroy pack['pady'] = 25 pack['side'] = 'bottom' self.botao_confirmar =\ TKUtils.obter_botao(master=self, cnf=cnf, pack=pack)
class JanelaDeSorteio(TKUtils.Janela()): def __init__(self, elemento, atividade): super().__init__() self.elemento = elemento self.atividade = atividade self.container = None self.label_do_elemento = None self.label_da_atividade = None def iniciar(self): self.title('Grande Felizardo(a)') self.geometry(f'{len(self.elemento) * 18 + 100}x100') self.resizable(0, 0) self.container = self.criar_container() texto = f'Aluno: {self.elemento}' self.label_do_elemento = self.criar_label(texto=texto, cor='red') texto = f'Atividade: {self.atividade["titulo"]}' self.label_do_elemento = self.criar_label(texto=texto, cor='green') def criar_container(self): return TKUtils.obter_container(master=self) def criar_label(self, texto, cor): cnf, pack = {}, {} cnf['text'] = texto cnf['bd'] = 4 cnf['fg'] = cor cnf['font'] = ('times new roman', 22, 'bold') return TKUtils.obter_label(master=self.container, cnf=cnf, pack=pack)
class View(TKUtils.Janela()): def __init__(self, controller): super().__init__() self.controller = controller self.navbar = None self.home = None self.aluno = None self.grupo = None self.atividade = None self.sobre = None self.janela_de_erro = None self.janela_de_sorteio = None self.container_ativo = '' def segundo_init(self): self.title('StuKiĀ®') self.geometry('960x490') self.resizable(0, 0) TKUtils.definir_icone(master=self, nome_do_icone='icone') def iniciar(self): self.criar_navbar() self.criar_container_home() self.mainloop() def criar_navbar(self): controller = self.controller.navbar self.navbar = Navbar(master=self, controller=controller) self.controller.navbar.evento_elemento_montado() def criar_container_home(self): controller = self.controller.home self.home = Home(master=self, controller=controller) self.container_ativo = 'home' self.controller.home.evento_elemento_montado() def criar_container_aluno(self): controller = self.controller.aluno self.aluno = Aluno(master=self, controller=controller) self.container_ativo = 'aluno' self.controller.aluno.evento_elemento_montado() def criar_container_atividade(self): controller = self.controller.atividade self.atividade = Atividade(master=self, controller=controller) self.container_ativo = 'atividade' self.controller.atividade.evento_elemento_montado() def criar_container_grupo(self): controller = self.controller.grupo self.grupo = Grupo(master=self, controller=controller) self.container_ativo = 'grupo' self.controller.grupo.evento_elemento_montado() def criar_container_sobre(self): pass def destruir_container_ativo(self): if self.container_ativo == 'home': self.home.destroy() elif self.container_ativo == 'aluno': self.aluno.destroy() elif self.container_ativo == 'atividade': self.atividade.destroy() elif self.container_ativo == 'grupo': self.grupo.destroy() elif self.container_ativo == 'sobre': self.sobre.destroy() self.container_ativo = '' def criar_janela_de_erro(self, erro): self.janela_de_erro = JanelaDeErro(erro=erro) def criar_janela_de_sorteio(self, atividade, aluno='', grupo=''): elemento = aluno if aluno else grupo['nome'] self.janela_de_sorteio =\ JanelaDeSorteio(elemento=elemento, atividade=atividade) self.janela_de_sorteio.iniciar()