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: 2662 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: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
# 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 |






