Come creare una finestra a schermo intero in Tkinter
-
Windows
root.attributes('-fullscreen', True)
per creare la modalità a schermo intero in Tkinter -
Ubuntu
root.attributes('-zoomed', True)
per creare la modalità a schermo intero in Tkinter - Visualizzare la modalità a schermo intero con la barra degli strumenti mostrata
In questo tutorial, introdurremo come creare una finestra a schermo intero in Tkinter, e come attivare o disattivare la modalità a schermo intero.
Windows root.attributes('-fullscreen', True)
per creare la modalità a schermo intero in Tkinter
tk.Tk.attributes
imposta gli attributi specifici della piattaforma. Gli attributi in Windows sono,
-alpha
-transparentcolor
-disabled
-fullscreen
-toolwindow
-topmost
-fullscreen
specifica se la finestra è a schermo intero o meno.
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 è legata alla funzione toggleFullScreen
.
def toggleFullScreen(self, event):
self.fullScreenState = not self.fullScreenState
self.window.attributes("-fullscreen", self.fullScreenState)
La modalità fullscreen
è aggiornata allo stato toggled in questa funzione.
def quitFullScreen(self, event):
self.fullScreenState = False
self.window.attributes("-fullscreen", self.fullScreenState)
La funzione quitFullScreen
esce dalla modalità a schermo intero impostando -fullscreen
come False
.
Potremmo usare la funzione lambda
per rendere la soluzione più semplice
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")
),
)
Lega la funzione lambda
a F11, dove lo stato corrente a schermo intero potrebbe essere letto da self.window.attributes("-fullscreen")
che restituisce lo stato se non viene dato alcun valore nel metodo.
Non abbiamo più bisogno della variabile di stato fullScreenState
se seguiamo questo approccio.
Ubuntu root.attributes('-zoomed', True)
per creare la modalità a schermo intero in Tkinter
L’attributo -fullscreen
esiste solo su Windows ma non su Linux o macOS. Ubuntu ha un attributo simile -zoomed
per impostare la finestra in modalità a schermo intero.
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()
Visualizzare la modalità a schermo intero con la barra degli strumenti mostrata
La modalità a schermo intero mostrata nei codici sopra indicati rende la barra degli strumenti invisibile. Se abbiamo bisogno di mostrare la barra degli strumenti nella finestra, la geometria della finestra deve essere la stessa con le dimensioni del monitor.
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_screenwidthwidth()
e winfo_screenheight()
ottengono la larghezza e l’altezza del monitor.
self.window.geometry("%dx%d" % (self.w, self.h))
Imposta la dimensione della finestra GUI uguale alla larghezza e all’altezza del monitor, usando il metodo 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