HOWTO · Tkinter
Como criar uma nova janela clicando em um botão no Tkinter
Este tutorial mostra como criar e abrir uma nova janela ao pressionar um botão no Tkinter
Nesta página
Neste tutorial, vamos mostrar-lhe como criar e abrir uma nova janela do Tkinter, clicando num botão no Tkinter.
Criar uma nova janela do Tkinter
import tkinter as tk
def createNewWindow():
newWindow = tk.Toplevel(app)
app = tk.Tk()
buttonExample = tk.Button(app, text="Create new window", command=createNewWindow)
buttonExample.pack()
app.mainloop()
Normalmente utilizamos tk.Tk() para criar uma nova janela Tkinter, mas ela não é válida se já tivermos criado uma janela raiz, como mostrado nos códigos acima.
O Toplevel é o widget certo nesta circunstância, pois o widget Toplevel tem a intenção de exibir janelas extra pop-up.
buttonExample = tk.Button(app, text="Create new window", command=createNewWindow)
Ele liga a função createNewWindow ao botão.
A nova janela é uma janela vazia no exemplo acima e você poderia adicionar mais widgets a ela assim como adicionar widgets em uma janela raiz normal, mas precisa mudar o widget pai para a janela criada Toplevel.
import tkinter as tk
def createNewWindow():
newWindow = tk.Toplevel(app)
labelExample = tk.Label(newWindow, text="New Window")
buttonExample = tk.Button(newWindow, text="New Window button")
labelExample.pack()
buttonExample.pack()
app = tk.Tk()
buttonExample = tk.Button(app, text="Create new window", command=createNewWindow)
buttonExample.pack()
app.mainloop()
Como você pode ver, labelExample e buttonExample têm seus widgets pai como newWindow mas não como app.