Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Display fullscreen mode on Tkinter

Tags:

python

tkinter

How can I make a frame in Tkinter display in fullscreen mode? I saw this code, and it's very useful…:

>>> import Tkinter >>> root = Tkinter.Tk() >>> root.overrideredirect(True) >>> root.geometry("{0}x{1}+0+0".format(root.winfo_screenwidth(), root.winfo_screenheight())) 

…but is it possible to edit the code so that hitting Esc automatically makes the window "Restore down"?

like image 289
DRdr Avatar asked Nov 01 '11 12:11

DRdr


People also ask

How do I make tkinter window full-screen?

Tkinter displays the application window by its default size. However, we can display a full-screen window by using attributes('fullscreen', True) method. The method is generally used for assigning a tkinter window with properties like transparentcolor, alpha, disabled, fullscreen, toolwindow, and topmost.

How do you make a loading screen in tkinter?

Create a splash screen with some labels in it. Make the splash screen borderless using the overrideredirect method. Create a function for the main window which will appear for a time just after the splash screen.

What does Mainloop () do in tkinter?

mainloop() tells Python to run the Tkinter event loop. This method listens for events, such as button clicks or keypresses, and blocks any code that comes after it from running until you close the window where you called the method.


1 Answers

I think this is what you're looking for:

Tk.attributes("-fullscreen", True)  # substitute `Tk` for whatever your `Tk()` object is called 

You can use wm_attributes instead of attributes, too.

Then just bind the escape key and add this to the handler:

Tk.attributes("-fullscreen", False) 

An answer to another question alluded to this (with wm_attributes). So, that's how I found out. But, no one just directly went out and said it was the answer for some reason. So, I figured it was worth posting.

Here's a working example (tested on Xubuntu 14.04) that uses F11 to toggle fullscreen on and off and where escape will turn it off only:

import sys if sys.version_info[0] == 2:  # Just checking your Python version to import Tkinter properly.     from Tkinter import * else:     from tkinter import *   class Fullscreen_Window:      def __init__(self):         self.tk = Tk()         self.tk.attributes('-zoomed', True)  # This just maximizes it so we can see the window. It's nothing to do with fullscreen.         self.frame = Frame(self.tk)         self.frame.pack()         self.state = False         self.tk.bind("<F11>", self.toggle_fullscreen)         self.tk.bind("<Escape>", self.end_fullscreen)      def toggle_fullscreen(self, event=None):         self.state = not self.state  # Just toggling the boolean         self.tk.attributes("-fullscreen", self.state)         return "break"      def end_fullscreen(self, event=None):         self.state = False         self.tk.attributes("-fullscreen", False)         return "break"  if __name__ == '__main__':     w = Fullscreen_Window()     w.tk.mainloop() 

If you want to hide a menu, too, there are only two ways I've found to do that. One is to destroy it. The other is to make a blank menu to switch between.

self.tk.config(menu=self.blank_menu)  # self.blank_menu is a Menu object 

Then switch it back to your menu when you want it to show up again.

self.tk.config(menu=self.menu)  # self.menu is your menu. 
like image 193
Brōtsyorfuzthrāx Avatar answered Sep 22 '22 08:09

Brōtsyorfuzthrāx