Como criar uma nova janela clicando em um botão no Tkinter
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
.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook