Say I have some simple code, like this:
from Tkinter import *
root = Tk()
app = Toplevel(root)
app.mainloop()
This opens two windows: the Toplevel(root)
window and the Tk()
window.
Is it possible to avoid the Tk()
window (root
) from opening? If so, how? I only want the toplevel. I want this to happen because I am making a program that will have multiple windows opening, which are all Toplevel
's of the root
.
Thanks!
The withdraw()
method removes the window from the screen.
The iconify()
method minimizes the window, or turns it into an icon.
The deiconify()
method will redraw the window, and/or activate it.
If you choose withdraw()
, make sure you've considered a new way to exit the program before testing.
e.g.
from Tkinter import * # tkinter in Python 3
root = Tk()
root.withdraw()
top = Toplevel(root)
top.protocol("WM_DELETE_WINDOW", root.destroy)
but = Button(top, text='deiconify')
but['command'] = root.deiconify
but.pack()
root.mainloop()
The protocol()
method can be used to register a function that will be called when the
Toplevel window's close button is pressed. In this case we can use destroy()
to exit.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With