Wie man ein Vollbildfenster in Tkinter erstellt
-
Windows
root.attributes('-fullscreen', True)
um den Vollbildmodus in Tkinter zu erstellen -
Ubuntu
root.attributes('-zoomed', True)
um den Vollbildmodus in Tkinter zu erzeugen - Vollbildmodus mit eingeblendeter Symbolleiste anzeigen
In diesem Tutorial wird vorgestellt, wie man Vollbildfenster in Tkinter erstellt und wie man den Vollbildmodus umschaltet oder verlässt.
Windows root.attributes('-fullscreen', True)
um den Vollbildmodus in Tkinter zu erstellen
tk.Tk.attributes
setzt plattformspezifische Attribute. Die Attribute in Windows sind,
-alpha
-transparentcolor
-disabled
-fullscreen
-toolwindow
-topmost
-fullscreen
gibt an, ob das Fenster im Vollbildmodus ist oder nicht.
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 ist an die Funktion toggleFullScreen
gebunden.
def toggleFullScreen(self, event):
self.fullScreenState = not self.fullScreenState
self.window.attributes("-fullscreen", self.fullScreenState)
Der fullscreen
-Modus wird in dieser Funktion auf den geschalteten Zustand aktualisiert.
def quitFullScreen(self, event):
self.fullScreenState = False
self.window.attributes("-fullscreen", self.fullScreenState)
Die Funktion quitFullScreen
verläßt den Vollbildmodus, indem der -fullscreen
auf False
gesetzt wird.
Wir könnten die lambda
Funktion benutzen, um die Lösung einfacher zu machen.
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")
),
)
Es bindet die lambda
Funktion an F11, wo der aktuelle Vollbild-Status von self.window.attributes("-fullscreen")
gelesen werden kann, der den Status zurückgibt, wenn in der Methode kein Wert angegeben wird.
Wir brauchen die Zustandsvariable fullScreenState
nicht mehr, wenn wir diesem Ansatz folgen.
Ubuntu root.attributes('-zoomed', True)
um den Vollbildmodus in Tkinter zu erzeugen
-fullscreen
Attribut existiert nur unter Windows, nicht aber unter Linux oder macOS. Ubuntu hat ein vergleichbares Attribut -zoomed
um das Fenster in den Vollbildmodus zu setzen.
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()
Vollbildmodus mit eingeblendeter Symbolleiste anzeigen
Der in den obigen Codes dargestellte Vollbildmodus macht die Symbolleiste unsichtbar. Wenn wir die Symbolleiste im Fenster anzeigen müssen, muss die Geometrie des Fensters mit der Monitorgröße übereinstimmen.
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()
Mit winfo_screenwidth()
und winfo_screenheight()
erhalten wir die Breite und Höhe des Monitors.
self.window.geometry("%dx%d" % (self.w, self.h))
Es setzt die Größe des GUI-Fensters gleich der Breite und Höhe des Monitors, indem es die geometry
Methode verwendet.
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