Afficher le mode plein écran sur Tkinter

Comment obtenir un cadre en Tkinter pour l'afficher en mode plein écran? ? ? J'ai vu ce code, c'est très pratique,

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

mais est-ce que c'est possible, quand J'appuie sur Esc qui "restaure" automatiquement la fenêtre ? Probablement c'est un code très compliqué , aide pls.

27
demandé sur DRdr 2011-11-01 16:04:36

4 réponses

Cela crée une fenêtre plein écran. En appuyant sur Escape redimensionne la fenêtre pour 200x200+0+0' par défaut. Si vous déplacez ou redimensionnez la fenêtre, Escape basculement entre la géométrie actuelle et la géométrie précédente.

import Tkinter as tk

class FullScreenApp(object):
    def __init__(self, master, **kwargs):
        self.master=master
        pad=3
        self._geom='200x200+0+0'
        master.geometry("{0}x{1}+0+0".format(
            master.winfo_screenwidth()-pad, master.winfo_screenheight()-pad))
        master.bind('<Escape>',self.toggle_geom)            
    def toggle_geom(self,event):
        geom=self.master.winfo_geometry()
        print(geom,self._geom)
        self.master.geometry(self._geom)
        self._geom=geom

root=tk.Tk()
app=FullScreenApp(root)
root.mainloop()
18
répondu unutbu 2011-11-12 22:24:03

je pense que c'est ce que vous êtes à la recherche de:

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

Vous pouvez utiliser wm_attributes au lieu de attributes, trop.

alors liez simplement la touche escape et ajoutez ceci au gestionnaire:

Tk.attributes("-fullscreen", False)

Une réponse à une autre question fait allusion à ceci (avec wm_attributes). C'est donc ainsi que j'ai trouvé. Mais, personne, non seulement directement allé et a dit que c'était la réponse pour une raison quelconque. Donc, j'ai pensé qu'il valait la peine de poster.

Voici un exemple de travail (testé sur Xubuntu 14.04) qui utilise F11 pour activer et désactiver le plein écran et où escape l'éteindra seulement:

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()

si vous voulez cacher un menu, aussi, il n'y a que deux façons que j'ai trouvé pour le faire. L'un est pour la détruire. L'autre est de faire un menu vide pour basculer entre les.

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

puis revenez à votre menu quand vous voulez qu'il apparaisse à nouveau.

self.tk.config(menu=self.menu)  # self.menu is your menu.
51
répondu Shule 2014-12-09 22:53:21

je pense que si vous êtes à la recherche de fullscreen seulement, pas besoin de définir la géométrie ou maxsize etc.

Vous avez juste besoin de faire ceci:

-Si vous travaillez sur ubuntu:

root=tk.Tk()
root.attributes('-zoomed', True)

-et si vous travaillez sous windows:

root.state('zoomed')

maintenant pour basculer entre fullscreen, pour le minimiser vers taskbar vous pouvez utiliser:

Root.iconify()
9
répondu Harsh Dobariya 2017-01-29 16:11:49

cela va créer une fenêtre complètement plein écran sur mac (sans menubar visible) sans gâcher les liaisons clés

import tkinter as tk
root = tk.Tk()

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


root.mainloop()
5
répondu Trav 2017-02-11 08:31:56