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

胡金庫 2023年1月30日
  1. Windows に root.attributes('-fullscreen', True) Tkinter でフルスクリーンモードを作成する
  2. Ubuntu に root.attributes('-zoomed', True) が Tkinter でフルスクリーンモードを作成
  3. ツールバーで全画面モードを表示する
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)

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 のウィンドウサイズをディスプレイの幅と高さと同じに設定します。

著者: 胡金庫
胡金庫 avatar 胡金庫 avatar

DelftStack.comの創設者です。Jinku はロボティクスと自動車産業で8年以上働いています。自動テスト、リモートサーバーからのデータ収集、耐久テストからのレポート作成が必要となったとき、彼はコーディングスキルを磨きました。彼は電気/電子工学のバックグラウンドを持っていますが、組み込みエレクトロニクス、組み込みプログラミング、フロントエンド/バックエンドプログラミングへの関心を広げています。

LinkedIn Facebook

関連記事 - Tkinter Geometry