Tkinterで使われるattributesとは?活用事例を交えて徹底解説!?
今回はTkinterで使われるattributesに関して、活用事例を交えて徹底解説いたします。attributesに関して知りたい、attributesの参考例を確認したい方へおすすめです。是非最後までご覧ください。
執筆者 - おすすめの記事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画面全体を表す。