KURORO BLOGのロゴ

このエントリーをはてなブックマークに追加
Tkinterで使われるattributesとは?活用事例を交えて徹底解説!?

Tkinterで使われるattributesとは?活用事例を交えて徹底解説!?

今回はTkinterで使われるattributesに関して、活用事例を交えて徹底解説いたします。attributesに関して知りたい、attributesの参考例を確認したい方へおすすめです。是非最後までご覧ください。

目次
  1. そもそもTkinterで使われるattributesとは?
  2. attributes関数の定義
    1. 下準備
    2. -alpha
    3. -fullscreen
    4. -modified
    5. -topmost
    6. -transparent
  3. まとめ
目次を開く⬇︎

そもそもTkinterで使われるattributesとは?

Tkinterで使われるattributesとは、Window(画面全体)の詳細設定を行うものを意味します。

別名でattributes関数と呼ばれます。

Window(画面全体)を具体的な画像を用いて説明すると、

上記画像の水色枠で囲んだ部分=Tkinter画面全体になります。

Widget, Frame, Windowに関しては、【初学者必見!?】Tkinterで使われるlabelの活用方法を徹底解説の「Tkinterの構成要素」箇所でまとめていますので、詳しく知りたい方は是非ご確認ください。

attributes関数の定義

attributes関数は、

1# 第一引数 : 特定の文字列
2# 第二引数 : 第一引数に対応する値
3# 戻り値 : なし
4.attributes('特定の文字列', '第一引数に対応する値') or .wb_attributes('特定の文字列', '第一引数に対応する値')

で定義されます。戻り値はありません。

第一引数には、-alpha, -fullscreen, -modified, -topmost, -transparentのいずれかの値が格納されます。

上記の文字列の役割や扱い方に関して、順にみていきましょう。

下準備

今回は「そもそもTkinterで使われるattributesとは?」で紹介した画像の構成を元に、-alpha, -fullscreen, -modified, -topmost, -transparentの文字列を確認いたします。

下にコードを貼り付けておきますので、コードを確認してみてください。できればコードに触れて、一緒にattributesを体験しましょう。

1import tkinter as tk
2
3class Application(tk.Frame):
4    def __init__(self, master=None):
5        # Windowの初期設定を行う。
6        super().__init__(master)
7
8        # Windowの画面サイズを設定する。
9        # geometryについて : https://kuroro.blog/python/rozH3S2CYE0a0nB3s2QL/
10        self.master.geometry("300x200")
11
12        # Windowを親要素として、frame Widget(Frame)を作成する。
13        # Frameについて : https://kuroro.blog/python/P20XOidA5nh583fYRvxf/
14        frame = tk.Frame(self.master)
15
16        # Windowを親要素とした場合に、frame Widget(Frame)をどのように配置するのか?
17        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
18        frame.pack()
19
20        # frame Widget(Frame)を親要素として、label Widgetを作成する。
21        # text : テキスト情報
22        # width : 幅の設定
23        # height : 高さの設定
24        # bg : 背景色の設定
25        # 色について : https://kuroro.blog/python/YcZ6Yh4PswqUzaQXwnG2/
26        # Labelについて : https://kuroro.blog/python/Pj4Z7JBNRvcHZvtFqiKD/
27        label = tk.Label(frame, text="test", width=30, height=15, bg="red")
28
29        # frame Widget(Frame)を親要素とした場合に、label Widgetをどのように配置するのか?
30        # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
31        label.pack()
32
33# Tkinter初学者参考 : https://docs.python.org/ja/3/library/tkinter.html#a-simple-hello-world-program
34if __name__ == "__main__":
35    # Windowを生成する。
36    # Windowについて : https://kuroro.blog/python/116yLvTkzH2AUJj8FHLx/
37    root = tk.Tk()
38    app = Application(master=root)
39    # Windowをループさせて、継続的にWindow表示させる。
40    # mainloopについて : https://kuroro.blog/python/DmJdUb50oAhmBteRa4fi/
41    app.mainloop()

上記のコードをPython環境で実行すると、「そもそもTkinterで使われるattributesとは?」で紹介した画像の結果が表示されます。

-alpha

-alpha文字列を利用すると、Window(画面全体)の透明度を変更できます。

第二引数へ0.0~1.0(0.0が透明、1.0が鮮明に見える(デフォルト))の値を設定して、透明度合いを調整します。

例えば「下準備」で紹介したコード内の、root = tk.Tk()の下へ以下のコードを追加すると、

1     # Windowを生成する。
2     # Windowについて : https://kuroro.blog/python/116yLvTkzH2AUJj8FHLx/
3     root = tk.Tk()
4+    # もしくは、`root.wm_attributes('-alpha', 0.5)`を設定する。
5+    root.attributes('-alpha', 0.5)

以下の画像のようにWindow(画面全体)を表示します。

-fullscreen

-fullscreen文字列を利用すると、Window(画面全体)を画面いっぱいに表示させるかどうかを変更できます。

第二引数へTrue(画面いっぱいにWindow(画面全体)を表示する), False(画面いっぱいにWindow(画面全体)を表示しない(デフォルト))の値を設定して変更します。

例えば「下準備」で紹介したコード内の、root = tk.Tk()の下へ以下のコードを追加すると、

1     # Windowを生成する。
2     # Windowについて : https://kuroro.blog/python/116yLvTkzH2AUJj8FHLx/
3     root = tk.Tk()
4+    # もしくは、`root.wm_attributes('-fullscreen', True)`を設定する。
5+    root.attributes('-fullscreen', True)

画面いっぱいにWindow(画面全体)を表示します。

-modified

-modified文字列を利用すると、Window(画面全体)の閉じるボタンに、黒ポチを表示するかどうかを変更できます。

第二引数へTrue(黒ポチを表示する), False(黒ポチを表示しない(デフォルト))の値を設定して変更します。

例えば「下準備」で紹介したコード内の、root = tk.Tk()の下へ以下のコードを追加すると、

1     # Windowを生成する。
2     # Windowについて : https://kuroro.blog/python/116yLvTkzH2AUJj8FHLx/
3     root = tk.Tk()
4+    # もしくは、`root.wm_attributes('-modified', True)`を設定する。
5+    root.attributes('-modified', True)

以下の画像の青枠部分のように、Window(画面全体)の閉じるボタンへ黒ポチを表示します。

-topmost

-topmost文字列を利用すると、Window(画面全体)を一番前へ表示するかどうかを変更できます。

第二引数へTrue(Window(画面全体)を一番前へ表示する), False(Window(画面全体)を一番前へ表示しない(デフォルト))の値を設定して変更します。

例えば「下準備」で紹介したコード内の、root = tk.Tk()の下へ以下のコードを追加すると、

1     # Windowを生成する。
2     # Windowについて : https://kuroro.blog/python/116yLvTkzH2AUJj8FHLx/
3     root = tk.Tk()
4+    # もしくは、`root.wm_attributes('-topmost', True)`を設定する。
5+    root.attributes('-topmost', True)
6+    # Toplevel : メインWindowに紐づくサブWindowを表示する。
7+    # Toplevelについて : https://kuroro.blog/python/kEE4RwgYN45V0lM92SDM/
8+    top = tk.Toplevel()

以下の画像のように、label Widgetを描画するWindow(画面全体)を一番前へ表示します。

Toplevelに関しては、Tkinterで使われるtoplevelとは?Windowの説明を交えて徹底解説でまとめていますので、詳しく知りたい方は是非ご確認ください。

-transparent

-transparent文字列を利用すると、Window(画面全体)に影をつけるかどうかを変更できます。

第二引数へTrue(影をつける), False(影をつけない(デフォルト))の値を設定して変更します。

例えば「下準備」で紹介したコード内の、root = tk.Tk()の下へ以下のコードを追加すると、

1     # Windowを生成する。
2     # Windowについて : https://kuroro.blog/python/116yLvTkzH2AUJj8FHLx/
3     root = tk.Tk()
4+    # もしくは、`root.wm_attributes('-alpha', 0.5)`を設定する。
5+    root.attributes("-alpha", 0.5)
6+    # もしくは、`root.wm_attributes('-transparent', True)`を設定する。
7+    root.attributes("-transparent", True)

以下の画像のように、Window(画面全体)へ影をつけられます。

上の画像だけではわかりにくいと思いますので、以下の画像にように、左 : root.attributes("-transparent", False), 右 : root.attributes("-transparent", True)として再度確認しました。

右の方へ影が現れて、少しですが透明度が低くなりました。

まとめ

  • Tkinterで使われるattributesとは、Window(画面全体)の詳細設定を行うものを意味します。
  • 別名でattributes関数と呼ばれます。
  • Window(画面全体)とはTkinter画面全体を表す。