BCLtd
BCLtd

Reputation: 1461

How do I display a tkinter application in fullscreen on macOS?

I am just learning python, and I am trying to make a window go full screen, which I have achieved, but I am now wanting to get rid of the title bar across the top. It currently looks like the image below, but I want it to also go over the Mac top toolbar at top (like a splash screen).

enter image description here

from tkinter import *
root = Tk()

root.attributes('-fullscreen', True)
root.attributes('-topmost', True)
root.overrideredirect(True)



def quitApp():
    # mlabel = Label (root, text = 'Close').pack()
    root.destroy()

# placing the button on my window
button = Button(text = 'QUIT', command = quitApp).pack()

Upvotes: 3

Views: 5556

Answers (1)

Mike - SMT
Mike - SMT

Reputation: 15236

I believe what you want to do is use

root.wm_attributes('-fullscreen','true')

Try this instead. It should do the trick.

from tkinter import *
root = Tk()

root.wm_attributes('-fullscreen','true')

def quitApp():
    root.destroy()

button = Button(text = 'QUIT', command = quitApp).pack()

root.mainloop()

If this does not work because of the MacOS then take a look at this link This useful page has sever examples of how to manage mack windows in tkinter. And I believe what you may need to get borderless fullscreen.

This bit of code might be what you need:

root.tk.call("::tk::unsupported::MacWindowStyle", "style", root._w, "plain", "none")

Note: If you do use this option then you will need to remove root.wm_attributes('-fullscreen','true') from your code or just comment it out.

Update:

There is also another bit of code for tkinter 8.5+.

If you are using python with tkinter 8.5 or newer:

root.wm_attributes('-fullscreen', 1)

Upvotes: 5

Related Questions