Как создать полноэкранное окно в Tkinter
-
Windows
root.attributes('-fullscreen', True)
для создания полноэкранного режима в Tkinter -
Ubuntu
root.attributes('-zoomed', True)
для создания полноэкранного режима в Tkinter - Отображение полноэкранного режима с помощью Панели инструментов

В этом уроке мы расскажем, как создавать полноэкранное окно в Tkinter, а также как переключать и выходить из полноэкранного режима.
Windows root.attributes('-fullscreen', True)
для создания полноэкранного режима в Tkinter
tk.Tk.attributes
устанавливает атрибуты, специфичные для платформы. Атрибуты в Windows,
-alpha
-transparentcolor
-disabled
-fullscreen
-toolwindow
-topmost
-fullscreen
указывает, является ли окно полноэкранным или нет.
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 привязывается к функции toggleFullScreen
.
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)
Функция quitFullScreen
выходит из полноэкранного режима, установив -fullscreen
в False
.
Мы могли бы использовать функцию lambda
, чтобы сделать решение более простым.
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")))
Она привязывает функцию lambda
к F11, где текущее полноэкранное состояние может быть прочитано self.window.attributes("-fullscreen")
, которая возвращает состояние, если в методе не задано ни одного значения.
Переменная состояния fullScreenState
нам больше не нужна, если мы будем следовать этому подходу.
Ubuntu root.attributes('-zoomed', True)
для создания полноэкранного режима в Tkinter
Атрибут -fullscreen
существует только в Windows, но не в Linux или macOS. Ubuntu имеет сопоставимый атрибут -zoomed
для установки окна в полноэкранном режиме.
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()
Отображение полноэкранного режима с помощью Панели инструментов
Полноэкранный режим, показанный в приведенных выше кодах, делает панель инструментов невидимой. Если необходимо показать панель инструментов в окне, то геометрия окна будет совпадать с размером монитора.
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()
и winfo_screenheight()
получают ширину и высоту монитора.
self.window.geometry("%dx%d" % (self.w, self.h))
Он устанавливает размер окна GUI, равный ширине и высоте монитора, используя метод 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Сопутствующая статья - Tkinter Geometry
- Как заморозить размер рамки окна Tkinter Window Frame
- Как установить окно Tkinter с постоянным размером