Tkinter 에서 전체 화면 창을 만드는 방법
-
Tkinter 에서 전체 화면 모드를 만드는 Windows
root.attributes('-fullscreen', True)
-
Tkinter 에서 전체 화면 모드를 만드는 우분투
root.attributes('-zoomed', True)
- 도구 모음이 표시된 전체 화면 모드 표시
이 튜토리얼에서는 Tkinter 에서 전체 화면 창을 만드는 방법과 전체 화면 모드를 전환하거나 종료하는 방법을 소개합니다.
Tkinter 에서 전체 화면 모드를 만드는 Windows root.attributes('-fullscreen', True)
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
가 더 이상 필요하지 않습니다.
Tkinter 에서 전체 화면 모드를 만드는 우분투 root.attributes('-zoomed', True)
-fullscreen
속성은 Windows 에만 존재하지만 Linux 나 macOS 에는 없습니다. 우분투에는 창을 전체 화면 모드로 설정하기위한 비슷한 속성 인 -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))
geometry
방법을 사용하여 GUI 창 크기를 모니터 너비 및 높이와 동일하게 설정합니다.
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