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