Comment créer une fenêtre plein écran dans Tkinter

  1. Windows root.attributes('-fullscreen', True) pour créer le mode plein écran dans Tkinter
  2. Ubuntu root.attributes('-zoomed', True) pour créer le mode plein écran dans Tkinter
  3. Afficher le mode plein écran avec la barre d’outils affichée

Dans ce tutoriel, nous allons introduire comment créer une fenêtre plein écran dans Tkinter, et comment basculer ou quitter le mode plein écran.

Windows root.attributes('-fullscreen', True) pour créer le mode plein écran dans Tkinter

tk.Tk.attributes` définit des attributs spécifiques à la plate-forme. Les attributs dans Windows sont,

  • -alpha
  • -transparentcolor
  • -disabled
  • -fullscreen
  • -toolwindow
  • -topmost

-fullscreen spécifie si la fenêtre est en mode plein écran ou non.

import tkinter as tk

class Fullscreen_Example:
    def __init__(self):
        self.window = tk.Tk()
        self.window.attributes('-fullscreen', True)  
        self.fullScreenState = False
        self.window.bind("<F11>", self.toggleFullScreen)
        self.window.bind("<Escape>", self.quitFullScreen)

        self.window.mainloop()

    def toggleFullScreen(self, event):
        self.fullScreenState = not self.fullScreenState
        self.window.attributes("-fullscreen", self.fullScreenState)

    def quitFullScreen(self, event):
        self.fullScreenState = False
        self.window.attributes("-fullscreen", self.fullScreenState)

if __name__ == '__main__':
    app = Fullscreen_Example()  

self.window.bind("<F11>", self.toggleFullScreen)

F11 est lié à la fonction toggleFullScreen.

    def toggleFullScreen(self, event):
        self.fullScreenState = not self.fullScreenState
        self.window.attributes("-fullscreen", self.fullScreenState)

Le mode fullscreen est mis à jour à l’état basculé dans cette fonction.

    def quitFullScreen(self, event):
        self.fullScreenState = False
        self.window.attributes("-fullscreen", self.fullScreenState)

La fonction quitFullScreen quitte le mode plein écran en réglant fullscreen sur False.

Nous pourrions utiliser la fonction lambda pour rendre la solution plus simple

import tkinter as tk


class Fullscreen_Example:
    def __init__(self):
        self.window = tk.Tk()
        self.window.attributes('-fullscreen', True)  
        self.window.bind("<F11>",
                         lambda event: self.window.attributes("-fullscreen",
                                    not self.window.attributes("-fullscreen")))
        self.window.bind("<Escape>",
                         lambda event: self.window.attributes("-fullscreen",
                                    False))

        self.window.mainloop()

if __name__ == '__main__':
    app = Fullscreen_Example()    

self.window.bind("<F11>",
     lambda event: self.window.attributes("-fullscreen",
                not self.window.attributes("-fullscreen")))

Elle lie la fonction lambda à F11, où l’état plein écran actuel pourrait être lu par self.window.attributes("-fullscreen") qui renvoie l’état si aucune valeur n’est donnée dans la méthode.

Nous n’avons plus besoin de la variable d’état fullScreenState si nous suivons cette approche.

Ubuntu root.attributes('-zoomed', True) pour créer le mode plein écran dans Tkinter

L’attribut -fullscreen n’existe que sous Windows mais pas sous Linux ou MacOS. Ubuntu a un attribut comparable -zoomed pour mettre la fenêtre en mode plein écran.

import tkinter as tk

class Ubuntu_Fullscreen_Example:
    def __init__(self):
        self.window = tk.Tk()
        self.window.attributes('-zoomed', True)  
        self.fullScreenState = False
        self.window.bind("<F11>", self.toggleFullScreen)
        self.window.bind("<Escape>", self.quitFullScreen)

        self.window.mainloop()

    def toggleFullScreen(self, event):
        self.fullScreenState = not self.fullScreenState
        self.window.attributes("-zoomed", self.fullScreenState)

    def quitFullScreen(self, event):
        self.fullScreenState = False
        self.window.attributes("-zoomed", self.fullScreenState)

if __name__ == '__main__':
    app = Ubuntu_Fullscreen_Example()  

Afficher le mode plein écran avec la barre d’outils affichée

Le mode plein écran indiqué dans les codes ci-dessus rend la barre d’outils invisible. Si nous devons montrer la barre d’outils dans la fenêtre, la géométrie de la fenêtre doit être la même avec la taille du moniteur.

import tkinter as tk

class Fullscreen_Example:
    def __init__(self):
        self.window = tk.Tk()
        self.fullScreenState = False
        self.window.attributes("-fullscreen", self.fullScreenState)

        self.w, self.h = self.window.winfo_screenwidth(), self.window.winfo_screenheight()
        self.window.geometry("%dx%d" % (self.w, self.h))
        
        self.window.bind("<F11>", self.toggleFullScreen)
        self.window.bind("<Escape>", self.quitFullScreen)

        self.window.mainloop()

    def toggleFullScreen(self, event):
        self.fullScreenState = not self.fullScreenState
        self.window.attributes("-fullscreen", self.fullScreenState)

    def quitFullScreen(self, event):
        self.fullScreenState = False
        self.window.attributes("-fullscreen", self.fullScreenState)

if __name__ == '__main__':
    app = Fullscreen_Example()  

self.w, self.h = self.window.winfo_screenwidth(), self.window.winfo_screenheight()

winfo_screenwidth() et winfo_screenheight() récupèrent la largeur et la hauteur du moniteur.

self.window.geometry("%dx%d" % (self.w, self.h))

Il définit la taille de la fenêtre GUI comme la largeur et la hauteur du moniteur, en utilisant la méthode geometry.

Article connexe - Tkinter Geomertry

  • Comment créer une fenêtre Tkinter de taille constante
  • comments powered by Disqus