フレームを使ったGUI
tkinterを使って、ウィンドウにフレームを表示させる事が出来ます。
インポートするパッケージはtkinterです。
サンプルコードは、実行すると二つのフレームを持ったウィンドウを表示させます。
- from tkinter import *
-
- root = Tk()
- root.title('TestWindow')
- # Frameのサイズ
- frame1 = Frame(root, width=100, height=100, relief='ridge', bd=1)
- frame2 = Frame(root, width=0, height=0, relief='solid', bd=1)
- # Frameのサイズ変更可否 frame1は変更不可、frame2は変更許可
- frame1.propagate(False)
- frame2.propagate(True)
- # Frameの配置(frame1の下にframe2を配置する場合)
- frame1.grid(row=0, column=0)
- frame2.grid(row=1, column=0)
- # Frameに配置するwidget
- label1 = Label(frame1, text='flame1です', font=('',10))
- label1.pack(padx=0, pady=0, expand=True)
- button1 = Button(frame2, text='flame2です', font=('',10))
- button1.pack(padx=0, pady=0, expand=True)
- root.mainloop()
実行すると下の様なウィンドウが表示されます。ボタンは現時点ではクリックしても反応しません。

Frameでフレームのサイズ、見た目を設定します。
relief=でフレームの見た目を変更出来ます。省略するとフレームの境界線は表示されません。
bd=でフレーム境界線幅を指定します。省略すると線幅=0となり、境界線が表示されません。
- frame1 = Frame(root, width=100, height=100, relief='ridge', bd=1)
- frame2 = Frame(root, width=0, height=0, relief='solid', bd=1)
propagateでフレームをオブジェクトの配置に合わせてサイズ変更するかを設定します。
- frame1.propagate(False)
- frame2.propagate(True)
gridでフレームの配置を行います。左上をrow=0, column=0とし、左下がrow=1,column=0となり、右上がrow=0,column=1となります。
- frame1.grid(row=0, column=0)
- frame2.grid(row=1, column=0)