Removing minimize/maximize buttons in Tkinter
Question: I have a python program which opens a new windows to display some 'about'
information. This window has its own close button, and I have made it non-
resizeable. However, the buttons to maximize and minimize it are still there,
and I want them gone.

I am using Tkinter, wrapping all the info to display in the Tk class.

The code so far is given below. I know its not pretty, and I plan on expanding
the info making it into a class, but I want to get this problem sorted before
moving along.

Anyone know how I can govern which of the default buttons are shown by the
windows manager?

    
    
    def showAbout(self):
    
    
        if self.aboutOpen==0:
            self.about=Tk()
            self.about.title("About "+ self.programName)
    
            Label(self.about,text="%s: Version 1.0" % self.programName ,foreground='blue').pack()
            Label(self.about,text="By Vidar").pack()
            self.contact=Label(self.about,text="Contact: adress@gmail.com",font=("Helvetica", 10))
            self.contact.pack()
            self.closeButton=Button(self.about, text="Close", command = lambda: self.showAbout())
            self.closeButton.pack()
            self.about.geometry("%dx%d+%d+%d" % (175,\
                                            95,\
                                            self.myParent.winfo_rootx()+self.myParent.winfo_width()/2-75,\
                                            self.myParent.winfo_rooty()+self.myParent.winfo_height()/2-35))
    
            self.about.resizable(0,0)
            self.aboutOpen=1
            self.about.protocol("WM_DELETE_WINDOW", lambda: self.showAbout())
            self.closeButton.focus_force()
    
    
            self.contact.bind('<Leave>', self.contactMouseOver)
            self.contact.bind('<Enter>', self.contactMouseOver)
            self.contact.bind('<Button-1>', self.mailAuthor)
        else:
            self.about.destroy()
            self.aboutOpen=0
    
    def contactMouseOver(self,event):
    
        if event.type==str(7):
            self.contact.config(font=("Helvetica", 10, 'underline'))
        elif event.type==str(8):
            self.contact.config(font=("Helvetica", 10))
    
    def mailAuthor(self,event):
        import webbrowser
        webbrowser.open('mailto:adress@gmail.com',new=1)
    


Answer: In general, what decorations the WM (window manager) decides to display can
not be easily dictated by a toolkit like Tkinter. So let me summarize what I
know plus what I found:

    
    
    import Tkinter as tk
    
    root= tk.Tk()
    
    root.title("wm min/max")
    
    # this removes the maximize button
    root.resizable(0,0)
    
    # # if on MS Windows, this might do the trick,
    # # but I wouldn't know:
    # root.attributes(toolwindow=1)
    
    # # for no window manager decorations at all:
    # root.overrideredirect(1)
    # # useful for something like a splash screen
    
    root.mainloop()
    

There is also the possibility that, for a `Toplevel` window other than the
root one, you can do:

    
    
    toplevel.transient(1)
    

and this will remove the min/max buttons, but it also depends on the window
manager. From what I read, the MS Windows WM does remove them.

