18

I'm currently working with Tkinter and Python 2.7 on Linux and I was wondering if there was a way to remove the TK() window border frame and title bar without using overrideredirect(1).

I have my own close button and overrideredirect(1) presents me with a few issues that I can't accept:

I can't use attributes("-fullscreen", True) as the titlebar and borders remain.

2 Answers 2

24

The window decoration is all handled by the window manager so what you are trying to do is find a way to tell the window manager to decorate your window differently from a standard application window. Tk provides overrideredirect to have the window manager completely ignore this window but we can also use Extended Window Manager Hints to declare the intended use of this toplevel window to the window manager. This is done for instance for tooltip and splashscreen windows to allow the manager to provide minimal decoration and possibly special animations.

In your case, adding a 'splash' hint should do what you want

root = tk.Tk()
root.wm_attributes('-type', 'splash')

You will need Tk 8.5 or above for this.

Sign up to request clarification or add additional context in comments.

6 Comments

Thanks for your reply, is this for use on Linux, Windows or Both? I'm currently on Windows using Python 3.5 and Tkinter 8.6 and I get this error: _tkinter.TclError: wrong # args: should be "wm attributes window ?-alpha ?double?? ?-transparentcolor ?color?? ?-disabled ?bool?? ?-fullscreen ?bool?? ?-toolwindow ?bool?? ?-topmost ?bool??"_
This is amazing - just tested it on Linux and it works perfectly! (so far)
The -type option is only relevant to X as it is a system used by X Window managers. TIP 359 has the details (tcl.tk/cgi-bin/tct/tip/359.html). You can check root.tk.call('tk','windowingsystem') for "x11" and use that to avoid using this feature on other systems.
@D'Arcy I got the same error, no idea how to solve :(
@uniqueNt Possibly stackoverflow.com/a/30819099/291641 can help you on Windows if you need to modify the windows style of an overrideredirect Tk window.
|
4

You must give your root window name before your command.

Like this:

from tkinter import *

root=Tk()
root.wm_attributes('-fullscreen','true')
root.mainloop()

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.