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.
2. Re: Desenvolvendo varias telas - Pycharm + Tkinter
ctw6avusa Nenhuma
Post recolhido
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
ctw6avusa Nenhuma
Post recolhido
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
brunobudagusa CentOS
Post recolhido
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))
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
#==================================================================