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)
fullscreen
モードは、この関数に切り替え状態に更新されます。
def quitFullScreen(self, event):
self.fullScreenState = False
self.window.attributes("-fullscreen", self.fullScreenState)
-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")
を読み取り、メソッドで値が指定されていない場合、この方法は -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 のウィンドウサイズをディスプレイの幅と高さと同じに設定します。