Tkinter でフルスクリーンウィンドウを作成する方法

  1. Windows に root.attributes('-fullscreen', True) Tkinter でフルスクリーンモードを作成する
  2. Ubuntu に root.attributes('-zoomed', True) が Tkinter でフルスクリーンモードを作成
  3. ツールバーで全画面モードを表示する

このチュートリアルでは、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)

F11toggleFullScreen 関数にバインドします。

    def toggleFullScreen(self, event):
        self.fullScreenState = not self.fullScreenState
        self.window.attributes("-fullscreen", self.fullScreenState)

fullscreen モードは、この関数に切り替え状態に更新されます。

    def quitFullScreen(self, event):
        self.fullScreenState = False
        self.window.attributes("-fullscreen", self.fullScreenState)

-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") を読み取り、メソッドで値が指定されていない場合、この方法は -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))

geometry メソッド を使用して、GUI のウィンドウサイズをディスプレイの幅と高さと同じに設定します。

関連記事 - Tkinter Geomertry

  • 固定サイズの Tkinter ウィンドウを作成する方法
  • comments powered by Disqus