Tkinter 에서 전체 화면 창을 만드는 방법

  1. Tkinter 에서 전체 화면 모드를 만드는 Windows root.attributes('-fullscreen', True)
  2. Tkinter 에서 전체 화면 모드를 만드는 우분투 root.attributes( '-zoomed', True)
  3. 도구 모음이 표시된 전체 화면 모드 표시

이 튜토리얼에서는 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)

F11toggleFullScreen 함수에 바인딩됩니다.

    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 기능은-fullscreenFalse 로 설정하여 전체 화면 모드를 종료합니다.

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 창 크기를 모니터 너비 및 높이와 동일하게 설정합니다.

관련 문장 - Tkinter Geomertry

  • 일정한 크기로 Tkinter 창을 설정하는 방법