tkinterのLabelFrameの使い方について紹介します。
LabelFrameはFrameと同じようにwidgetをまとめて入れる入れ物のようなものですが、特徴としてLabelFrameに入れたwidgetの周りに枠線とFrame名を設定して表示することができます。
この記事でやること。
- 基本的な使い方
- オプションの設定方法
Widgetの作り方
tkinterでアプリケーションの開発をするときwidget(部品)を組み合わせて構築していきます。
widgetの作り方は次のとおりです。
widget = ヴィジット名(parent, **options)
基本的にヴィジット名には部品と同じ名前が付けられています。例えば、ボタンだとButton、ラベルだとLabelといった感じです。
(例)button = Button(parent, **options)
引数のparentは親ヴィジットと呼ばれるものでその部品の配置先を指定し、optionsでその部品の設定を行います。
LabelFrameも同様に
widget = LabelFrame(parent, **options)
として作成します。
LabelFrameを作る
それでは、実際にLabelFrameを作ってみましょう。
まずはLabelFrameを配置するためのメインウィンドウを作成します。
上のコードを実行すると、下のウィンドウが起動します。このウィンドウにLabelFrameを配置します。
root = tk.Tk()
とroot.mainloop()
の間にLabelFrameを作成するためのコードを追加します。
Widgetの作り方で説明したようにLabelFrameを作成します。
上記のコードを追加して、プログラムを実行すると下のウィンドウが起動します。
枠線と設定したFrame名が表示されました。
次に、作成したLabelFrameにCanvasを入れてみます。
作成したLabelFrameの下に上記のコードを追加してプログラムを実行すると、
Canvasが枠線の中に入って表示されました。
オプションについて
オプションについて紹介していきます。
背景色
LabelFrameの中の色をbg
で設定することができます。以下のコードでは白色に設定しています。
設定できる色についてはこちらのページを参考にしてみてください。(※少し試してみましたが、ここに記載されている色すべてが設定できるみたいではないみたいです。)
枠線の太さ
LabelFrameの枠線の太さはbd
で設定できます。デフォルトでは2に設定されています。
マウスポインタの見た目を変える
cursor
を設定することで、LabelFrameの上にマウスポインタがあるときに、そのマウスポインタの見た目を変えることができます。
例えば、cursor
をdot
に設定するとLabelFrameの上にマウスポインタがあるときにマウスポインタが黒い点で表示されます。
cursor
は他にも多くの種類を設定することができます。詳細は以下のリンクを見てください。
Python - Tkinter Cursors - Tutorialspoint
境目の見た目を変える
relief
を設定することでLabelFrameの境目の見た目を変更することができます。
relief
はデフォルトでflat
に設定されています。relief
はオプションとして、sunken, raised, groove, ridgeがあります。
試しにrelief
をgrooveにしてプログラムを実行すると下のウィンドウが起動します。
Frame名の表示位置
Frame名の表示位置を設定するにはlabelanchor
で指定します。デフォルトではNW(左上)
になっています。
設定できる値はe, en, n, ne, nw, s, se, sw, w, wn, wsです。
今回はe(東)を設定してプログラムを実行してみます。
上記コードにしてプログラムを実行すると下のウィンドウが起動します。
水平、垂直のpadding
LabelFrameとLabelFrameに入れたwidgetの水平方向と垂直方向の間隔をそれぞれpadx
とpady
で設定することができます。
Flame名の見た目を変える
Frame名の見た目は文字の色(fg
)とフォント(font
)の設定をすることができます。
上記のコードに変更して、プログラムを実行すると下のウィンドウが起動します。
おわり
LabelFrameの使い方について簡単にまとめてみました。
他のwidgetの使い方について知りたい方はこちらへどうぞ。
参考記事 - The Tkinter LabelFrame Widget