Comment créer une fenêtre plein écran dans Tkinter
-
Windows
root.attributes('-fullscreen', True)
pour créer le mode plein écran dans Tkinter -
Ubuntu
root.attributes('-zoomed', True)
pour créer le mode plein écran dans Tkinter - 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 retourne 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
.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook