Skip to content
Advertisement

Remove minimizd button in tkinter “root” window

I am trying to apply transient to Tk() instance. Example:

import tkinter as tk


root = tk.Tk()
root.geometry('200x200')

def create_new_window():
    win=tk.Toplevel()
    win.transient(root)
    win.geometry('200x200')
    tk.Label(win,text=' Hello World ').pack()

label1 = tk.Label(root, text='Click the button')
label1.pack()

b1=tk.Button(root,text='New Window',command=create_new_window)
b1.pack()
root.mainloop()

This code will remove the and - buttons. But, it will only do it for tk.Toplevel(): The window on the left in the root window and the one on the right is tk.Toplevel()

enter image description here

But is there any way to remove the and - buttons on the root window?
When I do:

....
label1 = tk.Label(root, text='Click the button')
label1.pack()

root.transient(root)

b1=tk.Button(root,text='New Window',command=create_new_window)
b1.pack()
...

I get an error:

Traceback (most recent call last):
  File "c:/Users/91996/Documents/Visual studio code/cd.py", line 15, in <module>
    root.transient(root)
  File "C:Program FilesPython3.8.6libtkinter__init__.py", line 2233, in wm_transient
    return self.tk.call('wm', 'transient', self._w, master)
_tkinter.TclError: can't make "." its own master

I know I could simply do root.resizable(0, 0) or root.withdraw() after-wards. But I am exploring tkinter and I would like to to see implementation of root.transient()

If soomething obvious is missing, please be gentle.

Thanks a lot in advance!

Advertisement

Answer

This is code:

import tkinter as tk


root = tk.Tk()
root.geometry('200x200')

def create_new_window():
    win=tk.Toplevel()
    win.attributes('-toolwindow',True)
    win.geometry('200x200')
    tk.Label(win,text=' Hello World ').pack()

label1 = tk.Label(root, text='Click the button')
label1.pack()

b1=tk.Button(root,text='New Window',command=create_new_window)
b1.pack()
root.mainloop()
User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement