Como criar uma janela de tela cheia no Tkinter
-
Windows
root.attributes('-fullscreen', True)para criar o modo tela cheia no Tkinter -
Ubuntu
root.attributes('-zoomed', True)para criar o modo tela cheia no Tkinter - Mostrar modo tela cheia com barra de ferramentas mostrada
Neste tutorial, vamos introduzir como criar uma janela em tela cheia no Tkinter, e como alternar ou sair do modo tela cheia.
Windows root.attributes('-fullscreen', True) para criar o modo tela cheia no Tkinter
tk.Tk.attributes define atributos específicos da plataforma. Os atributos no Windows são,
-alpha-transparentcolor-disabled-fullscreen-toolwindow-topmost
O -fullscreen especifica se a janela é ou não em modo tela cheia.
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)
O F11 está vinculado à função toggleFullScreen.
def toggleFullScreen(self, event):
self.fullScreenState = not self.fullScreenState
self.window.attributes("-fullscreen", self.fullScreenState)
O modo fullscreen é atualizado para o estado comutado nesta função.
def quitFullScreen(self, event):
self.fullScreenState = False
self.window.attributes("-fullscreen", self.fullScreenState)
A função quitFullScreen sai do modo tela cheia definindo -fullscreen para ser False.
Poderíamos utilizar a função lambda para tornar a solução mais simples.
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")
),
)
Ele liga a função lambda a F11, onde o estado atual da tela inteira pode ser lido por self.window.attributes("-fullscreen") que retorna o estado se nenhum valor for dado no método.
Nós não precisamos mais da variável de estado fullScreenState se seguirmos esta abordagem.
Ubuntu root.attributes('-zoomed', True) para criar o modo tela cheia no Tkinter
O atributo -fullscreen só existe no Windows, mas não no Linux ou macOS. O Ubuntu tem um atributo comparável -zoomed para definir a janela em modo tela cheia.
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()
Mostrar modo tela cheia com barra de ferramentas mostrada
O modo tela cheia mostrado nos códigos acima torna a barra de ferramentas invisível. Se precisarmos mostrar a barra de ferramentas na janela, a geometria da janela deve ser a mesma com o tamanho do 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_screenwidth() e winfo_screenheight() obtém a largura e a altura do monitor.
self.window.geometry("%dx%d" % (self.w, self.h))
Ele define o tamanho da janela GUI da mesma forma que a largura e altura do monitor, utilizando o método 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