Python tkinter入門:TkウィンドウでFrameクラスを使ってウィジェットをグループ化する方法
Frameウィジェットとは
TkinterのFrameウィジェットは、複数のウィジェットをひとつのフレーム内にまとめる(グループ化する)ための非常に便利なコンテナです。親ウィンドウ(Tkクラス)に適用される関数やプロパティの多くは、フレームに対してもそのまま利用できます。
Frameウィジェットを作成するには、Frameクラスのインスタンスを生成します。ウィンドウ上にフレームを定義したら、あとは任意のウィジェットを選んで、そのフレームの中へ直接配置するだけです。
サンプルコード
以下の例では、Frameウィジェットを作成し、その中にいくつかのウィジェットを定義しています。
# 必要なライブラリをインポート
from tkinter import *
from tkinter import ttk
# tkinterのフレーム(ウィンドウ)のインスタンスを作成
win=Tk()
# ウィンドウのサイズを設定
win.geometry("700x250")
def on_click():
label["text"]="Hello "+ str(entry.get())
# Frameウィジェットを作成
frame=Frame(win, width=400, height=300)
# フレーム内にラベルを追加
label=Label(frame, text="Enter your name", font=('Calibri 13'))
label.pack(pady=10)
# Entryウィジェット(テキスト入力欄)を追加
entry=Entry(frame, width=25)
entry.pack()
# ボタンを作成
ttk.Button(frame, text="Click Me", command=on_click).pack()
frame.pack()
win.mainloop()コードのポイント
- frame=Frame(win, width=400, height=300):親ウィンドウ win の中に、幅400×高さ300のフレームを生成しています。
- Label / Entry / Button:これらのウィジェットは、すべて第1引数に frame を指定することで、フレーム内に配置されます。
- pady=10:ラベルの上下に余白を設け、見た目を整えています。
- frame.pack():最後にフレーム自体をウィンドウに配置することで、中身のウィジェットもまとめて表示されます。
実行結果
上記のコードを実行すると、フレームの中にラベル、テキスト入力欄(Entryウィジェット)、ボタンが配置されたウィンドウが表示されます。

テキストフィールドに名前を入力し、「Click Me」ボタンをクリックすると、画面にメッセージが表示されます。

まとめ
Frameウィジェットを使うことで、関連するウィジェットを論理的にまとめられ、レイアウトの管理やUIの整理が格段に行いやすくなります。特にウィジェット数が多いアプリケーションでは、機能ごとにフレームで分割しておくと、コードの可読性と保守性が大きく向上します。
-
【Python】Tkinterで作るカラーゲーム – 30秒で文字の色を当てるGUIゲーム開発
GUIアプリケーションの開発において、Pythonの標準ライブラリ「Tkinter」は非常に人気が高く、初心者でも扱いやすいツールです。追加のインストール作業なしに使えるため、Tkinterを活用すればシンプルなGUIゲームでも手軽に開発できます。 この記事では、Tkinterを使った「カラーゲーム」の作り方を紹介します。このゲームでは、画面に表示される単語の文字色をプレイヤーが入力し、正解するたびにスコアが1点ずつ加算されます。制限時間は30秒で、使用される色は赤(Red)、青(Blue)、緑(Green)、ピンク(Pink)、黒(Black)、黄(Yellow)、オレンジ(Orange)、
-
PythonでのCX_Freezeの使い方:スクリプトを実行ファイル(EXE)に変換する方法
はじめに 何か面白いものを作りたいという欲求は人間の本能であり、完成したものは誰かに共有したくなるものです。Pythonでもその願いを叶えられます。ただし、作成したPythonスクリプトをそのまま共有するには、相手のマシンにも同じバージョンのPythonと、プログラムで使用しているすべてのモジュールがインストールされている必要があります。 そこで役立つのがCX_Freezeです。このツールを使えば、Pythonがインストールされていない環境でも動作するスタンドアロンの実行ファイル(.exe)を作成できます。 CX_Freezeのインストール まず、コマンドプロンプトで以下のコマンドを実行し、c