Desenvolvendo varias telas - Pycharm + Tkinter

1. Desenvolvendo varias telas - Pycharm + Tkinter

Bruno Gustavo Budag
brunobudag

(usa CentOS)

Enviado em 14/02/2018 - 17:12h

Estou desenvolvendo um programa no pycharm e o mesmo está funcionando chamando as telas, porém o codigo está ficando muito grande e difícil de efetuar manutenção

Gostaria de saber se é possível desenvolver no pycharm varias telas utilizando o tkinter e fazer uma referencia chamando chamando cada tela.

Ex: Vou criar um projeto e no projeto crio um python file, chamado tela principal.

na tela principal vou criar os menus e os menus vão chamar outra tela, cadastro por exemplo, então eu crio um python file - telacadastro e nela eu faço toda a programação.

Dai tela principal eu crio alguma linha que ao clicar no telacadastro ele abre a tela.

Espero ter sido claro


  


2. Re: Desenvolvendo varias telas - Pycharm + Tkinter

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 14/02/2018 - 17:18h

Já tem algum esboço ou ainda vai fazer? Se já tem algum código poste ele para a gente dar uma olhada.


3. Re: Desenvolvendo varias telas - Pycharm + Tkinter

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 14/02/2018 - 18:28h

Um exemplo para clarear. Ficou rústico e daria para fazer com metade das linhas que usei mas isso afetaria a leitura do código.

class FirstWindow(Toplevel):
def __init__(self, master=None):
Toplevel.__init__(self, master=master)

# Configuração da janela principal
self.title('Primeira Janela')
self.configure(background='green')
self.geometry('480x240')


class SecondWindow(Toplevel):
def __init__(self, master=None):
Toplevel.__init__(self, master=master)

# Configuração da janela principal
self.title('Segunda Janela')
self.configure(background='darkgray')
self.geometry('480x240')


class ThirdWindow(Toplevel):
def __init__(self, master=None):
Toplevel.__init__(self, master=master)

# Configuração da janela principal
self.title('Terceira Janela')
self.configure(background='yellow')
self.geometry('480x240')


class MainWindow(Frame):
def __init__(self, *args, **kwargs):
Frame.__init__(self, master=None)

# Configuração da janela principal
self.master.title('Janela Principal')
self.master.geometry('480x240')
self.configure(borderwidth=4)
self.configure(background='white')

for name in ("button1", "button2", "button3"):
self.button = Button(self, text=name)
self.button.bind("<Button-1>", self.handle_event)
self.button.pack(side='left', fill='x', expand=True)

# Empacotamos o frame principal
self.pack(fill='both', expand=True)

def handle_event(self, event):
btn_name = event.widget.cget('text')
if btn_name.endswith('1'):
window = FirstWindow()
if btn_name.endswith('2'):
window = SecondWindow()
if btn_name.endswith('3'):
window = ThirdWindow()

window.mainloop()


if __name__ == '__main__':
mainWindow = MainWindow()
mainWindow.mainloop()



4. Re: Desenvolvendo varias telas - Pycharm + Tkinter

Bruno Gustavo Budag
brunobudag

(usa CentOS)

Enviado em 15/02/2018 - 23:23h

Segue abaixo o esboço do meu programa, separei fazendo um quadrado o o que seria cada arquivo, a ideia era ter um principal que ao clicar em uma opção invocaria a mesma.

from tkinter import *
import time

#Tela de Login
#===============================================================
jpas = Tk()
jpas.title("Cadastro de senha")

def bt_oksenha():
p1=str(passwd.get())
lb["text"] =str("A senha digitada foi {}".format(p1))


def bt_entrar(passw1=None):
p1=str(passwd.get())
p2=str(confpas.get())
if p1 == p2:
lb["text"] = str("Login Efetuado com Sucesso")
time.sleep(5)
jpas.destroy()
else:
lb["text"] = str("Senha incorreta")

passwd = Entry(jpas)
passwd.place(x=100, y=100)

confpas = Entry(jpas)
confpas.place(x=100, y=130)

btgravasenha = Button(jpas, text="GRAVA SENHA", width=20, command=bt_oksenha)
btgravasenha.place(x=100, y=170)
btentrar = Button(jpas, text="ENTRAR NO SISTEMA", width=20, command=bt_entrar)
btentrar.place(x=100, y=210)


lb = Label(jpas, text="Senha não cadastrado")
lb.place(x=100, y=250)

jpas.geometry("500x500+0+0")
jpas.mainloop()
#Encerra tela de login
#==================================================================

#Inicia programa tela principal
#==================================================================
janela = Tk()
janela.title("Meu Programa")

#Inicia tela do menu Iniciar
def bt_iniciar():
janela2 = Tk()
janela2.title("teste")
janela2["bg"] = "red"
janela2.geometry("700x300+0+0")
janela2.mainloop()
#Encerra tela do menu iniciar

#Chama o processo de encerrar o programa
#==================================================================
def bt_sair():
janela.destroy()
#==================================================================

#Cria os botoes na tela principal
#==================================================================
btIniciar = Button(janela, text='Iniciar', width=10, command=bt_iniciar)
btIniciar.place(x=0, y=0)
btConsultar = Button(janela, text='Consultar', width=10)
btConsultar.place(x=100, y=0)
btDefinir = Button(janela, text='Definir', width=10)
btDefinir.place(x=200, y=0)
btConfiguracoes = Button(janela, text='Configurações', width=10)
btConfiguracoes.place(x=300, y=0)
btSobre = Button(janela, text='Sobre', width=10)
btSobre.place(x=400, y=0)
btSair = Button(janela, text='Sair', width=10, command=bt_sair)
btSair.place(x=500, y=0)
#Encerra os botões na tela principal
#==================================================================

janela.geometry("1024x768+0+0")
janela.mainloop()
#Encerra a janela principal
#==================================================================








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts