![]() |
|
||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
Você está aqui: Python ::: Tkinter GUI Toolkit ::: Formulários e Janelas |
Como criar janelas secundárias no Tkinter Python e fazê-las conversar entre siQuantidade de visualizações: 2532 vezes |
Nesta dica mostrarei como criar uma nova janela a partir da janela principal e trocar informações entre elas usando Tkinter Python. Em dicas anteriores eu mostrei como criar janelas secundárias e também como criar janelas modais, ou seja, janelas que bloqueiam a janela principal. Nesta dica eu mantive o aspecto modal da segunda janela e coloquei um botão nela que, quando clicado, incrementa um valor inteiro e o exibe na janela principal. Veja o código completo para o exemplo: # vamos importar o módulo Tkinter from tkinter import * from tkinter.ttk import * # valor que será manipulado na segunda janela valor = 10 # método que aumenta o valor ao clicar no botão da segunda janela def aumentar_valor(): global valor valor = valor + 1 # atualiza a label na primeira janela label_valor.config(text="Valor atual: {0}".format(valor)) # atualiza a label na segunda janela label_valor_segunda_janela.config(text="Valor atual: {0}".format(valor)) # função que permite abrir a segunda janela def segunda_janela(): janela_secundaria = Toplevel() # define as dimensões da janela secundária janela_secundaria.geometry("250x250") # define o título da janela secundária janela_secundaria.title("Segunda Janela") # vamos criar um botão usando a classe Button btn = Button(janela_secundaria, text="Aumentar Valor", command=aumentar_valor) # coloca o botão na primeira linha e primeira coluna do layout btn.grid(row=0, column=0, padx=10, pady=10) # vamos criar um Label na janela secundaria global label_valor_segunda_janela label_valor_segunda_janela = Label(janela_secundaria) label_valor_segunda_janela.config(text="Valor atual: {0}".format(valor)) label_valor_segunda_janela.grid(row=1, column=0, padx=10, pady=10) # coloca o foco na segunda janela janela_secundaria.focus_set() # desabilita a janela principal enquanto a janela secundária estiver aberta janela_secundaria.grab_set() # inicia o loop de eventos da janela secundária janela_secundaria.mainloop() # método principal def main(): # cria a janela principal da aplicação global janela_principal janela_principal = Tk() # define as dimensões da janela janela_principal.geometry("300x250") # define o título da janela janela_principal.title("Cadastro de Clientes") # vamos criar um botão usando a classe Button btn = Button(janela_principal, text="Abrir Janela", command=segunda_janela) # coloca o botão na primeira linha e primeira coluna do layout btn.grid(row=0, column=0, padx=10, pady=10) # vamos criar um Label global label_valor label_valor = Label(janela_principal) label_valor.config(text="Valor atual: {0}".format(valor)) label_valor.grid(row=1, column=0, padx=10, pady=10) # entramos no loop de eventos janela_principal.mainloop() if __name__== "__main__": main() Ao executar esta aplicação Tkinter Python nós teremos o seguinte resultado: ![]() |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |