カテゴリ: Python 更新日: 2026/06/25

Python Tkinterでボタンと入力フォームを作ろう!初心者向けGUI入門

PythonのTkinterでボタン・入力フォームを作成する方法
PythonのTkinterでボタン・入力フォームを作成する方法

先生と生徒の会話形式で理解しよう

生徒

「先生、Pythonで画面にボタンや文字を入力する場所を作りたいんですけど、どうすればいいですか?」

先生

「PythonにはTkinterという標準ライブラリがあります。これを使うと、ボタンや入力フォーム(テキストボックス)を簡単に作れます。」

生徒

「標準ライブラリって何ですか?」

先生

「Pythonをインストールすると最初から使える便利な部品の集まりのことです。追加で何かインストールしなくても使えますよ。」

1. Tkinterを使う準備

1. Tkinterを使う準備
1. Tkinterを使う準備

まずはPythonでTkinterを使えるようにする準備です。Tkinterは標準でインストールされているので、インポートするだけでOKです。

 import tkinter as tk # ウィンドウを作成 root = tk.Tk() root.title("Tkinter入門") # ウィンドウのタイトル root.geometry("300x200") # ウィンドウサイズ root.mainloop()

上のコードを実行すると、シンプルなウィンドウが表示されます。root.mainloop()はウィンドウを表示し続けるために必要な命令です。

2. ボタンを作ってクリックできるようにする

2. ボタンを作ってクリックできるようにする
2. ボタンを作ってクリックできるようにする

次に、クリックできるボタンを作ります。ボタンを押したときに動く処理も簡単に書けます。

 import tkinter as tk
def button_clicked():
print("ボタンが押されました!")

root = tk.Tk()
root.title("ボタンの例")
root.geometry("300x200")

ボタンを作成
button = tk.Button(root, text="押してね", command=button_clicked)
button.pack(pady=20) # packで配置、余白も追加

root.mainloop()

ポイントはcommand=button_clickedです。ボタンが押されたときにbutton_clicked関数が呼ばれます。

3. 入力フォーム(エントリー)を作る

3. 入力フォーム(エントリー)を作る
3. 入力フォーム(エントリー)を作る

入力フォームはEntryウィジェットを使います。ユーザーが文字を入力できるボックスです。

 import tkinter as tk
def show_text():
user_input = entry.get() # 入力された文字を取得
print("入力された文字:", user_input)

root = tk.Tk()
root.title("入力フォームの例")
root.geometry("300x200")

entry = tk.Entry(root)
entry.pack(pady=10)

button = tk.Button(root, text="表示", command=show_text)
button.pack(pady=10)

root.mainloop()

entry.get()でユーザーが入力した文字を取得できます。

4. ラベルを使って画面に文字を表示する

4. ラベルを使って画面に文字を表示する
4. ラベルを使って画面に文字を表示する

画面上に文字を表示したいときはLabelを使います。ボタンや入力フォームと組み合わせると便利です。

 import tkinter as tk
def update_label():
text = entry.get()
label.config(text="入力内容: " + text)

root = tk.Tk()
root.title("ラベル表示")
root.geometry("300x200")

entry = tk.Entry(root)
entry.pack(pady=10)

button = tk.Button(root, text="更新", command=update_label)
button.pack(pady=10)

label = tk.Label(root, text="ここに表示されます")
label.pack(pady=10)

root.mainloop()

label.config(text="新しい文字")で表示内容を変えられます。

5. ボタンと入力フォームを組み合わせた簡単なアプリ

5. ボタンと入力フォームを組み合わせた簡単なアプリ
5. ボタンと入力フォームを組み合わせた簡単なアプリ

ここまで学んだことを組み合わせて、入力した名前を挨拶として表示するアプリを作ってみます。

 import tkinter as tk
def greet():
name = name_entry.get()
greeting_label.config(text=f"こんにちは、{name}さん!")

root = tk.Tk()
root.title("挨拶アプリ")
root.geometry("350x200")

tk.Label(root, text="名前を入力してください").pack(pady=5)
name_entry = tk.Entry(root)
name_entry.pack(pady=5)

tk.Button(root, text="挨拶する", command=greet).pack(pady=10)

greeting_label = tk.Label(root, text="")
greeting_label.pack(pady=10)

root.mainloop()

入力してボタンを押すと、ラベルに「こんにちは、〇〇さん!」と表示されます。

6. ウィジェットの配置を工夫しよう(pack以外も)

6. ウィジェットの配置を工夫しよう(pack以外も)
6. ウィジェットの配置を工夫しよう(pack以外も)

ここまでの例ではpack()を使いましたが、grid()を使うと表のように整列できます。

 import tkinter as tk
root = tk.Tk()
root.title("grid配置の例")
root.geometry("300x150")

tk.Label(root, text="名前").grid(row=0, column=0, padx=5, pady=5)
tk.Entry(root).grid(row=0, column=1, padx=5, pady=5)

tk.Label(root, text="年齢").grid(row=1, column=0, padx=5, pady=5)
tk.Entry(root).grid(row=1, column=1, padx=5, pady=5)

tk.Button(root, text="送信").grid(row=2, column=0, columnspan=2, pady=10)

root.mainloop()

このように行と列を指定すると、より整理された画面を作れます。

7. 入力チェックや簡単な動作確認

7. 入力チェックや簡単な動作確認
7. 入力チェックや簡単な動作確認

入力フォームには数字だけを入れたい、必須入力にしたい、などのチェックも簡単にできます。例えば数字だけの入力チェックです。

 import tkinter as tk from tkinter import messagebox
def check_input():
value = entry.get()
if value.isdigit():
messagebox.showinfo("確認", f"入力は {value} です")
else:
messagebox.showwarning("警告", "数字を入力してください")

root = tk.Tk()
root.title("入力チェック")
root.geometry("300x150")

entry = tk.Entry(root)
entry.pack(pady=10)

tk.Button(root, text="確認", command=check_input).pack(pady=10)

root.mainloop()

isdigit()で文字列が数字かどうかを判定しています。

8. 最後に:TkinterでGUIアプリを作るコツ

8. 最後に:TkinterでGUIアプリを作るコツ
8. 最後に:TkinterでGUIアプリを作るコツ

Tkinterは標準で使えるので、まずは小さなウィンドウやボタンから始めるのがポイントです。ラベル、ボタン、入力フォームを少しずつ組み合わせることで、シンプルでわかりやすいGUIアプリを作ることができます。

初めは画面に「ボタン」と「入力フォーム」を置き、クリックや入力の動作を確認するだけでも十分学習になります。慣れてきたらgrid()pack()でレイアウトを工夫して、より見やすい画面に挑戦しましょう。

まとめ

まとめ
まとめ

今回の記事では、Pythonの標準ライブラリであるTkinterを使って、初心者でも簡単にGUIアプリケーションを作る方法を学びました。まず、Tkinterをインポートしてウィンドウを作成する基本から始め、次にボタンの作成とクリック時の処理、入力フォーム(Entry)の使い方、ラベル(Label)を用いた画面表示、そしてそれらを組み合わせた簡単な挨拶アプリまでステップごとに学習しました。

ボタンにcommandを設定してクリック時の動作を制御したり、entry.get()でユーザーの入力を取得する方法を理解することで、ユーザーとのインタラクションが可能になります。また、label.config(text="")を使うことで、画面上の文字表示を動的に変えることができ、より柔軟なGUIアプリケーションを作成できることも確認しました。

ウィジェットの配置方法も、pack()だけでなくgrid()を使うことで行と列を意識した整理されたレイアウトが実現でき、見やすく使いやすいアプリケーションの作成に役立ちます。さらに、数字だけの入力チェックや必須入力などの簡単な入力確認を追加することで、ユーザー入力の安全性や正確性を確保する方法も学びました。

まとめると、Tkinterを使うことでPython初心者でも短時間で、ボタンや入力フォーム、ラベルなどの基本ウィジェットを組み合わせたGUIアプリを作成できることがわかります。小さなウィンドウから始め、動作を確認しながら少しずつレイアウトや機能を拡張していくことが、GUIプログラミングを効率よく学ぶコツです。実際のアプリケーション開発では、今回学んだ基本を応用して、複数の入力フォームやボタンを組み合わせた実用的なツールも作成可能です。

サンプルプログラムで復習
 import tkinter as tk
from tkinter import messagebox

def greet():
    name = name_entry.get()
    if name:
        greeting_label.config(text=f"こんにちは、{name}さん!")
    else:
        messagebox.showwarning("入力確認", "名前を入力してください")

root = tk.Tk()
root.title("復習用挨拶アプリ")
root.geometry("350x200")

tk.Label(root, text="名前を入力してください").pack(pady=5)
name_entry = tk.Entry(root)
name_entry.pack(pady=5)

tk.Button(root, text="挨拶する", command=greet).pack(pady=10)

greeting_label = tk.Label(root, text="")
greeting_label.pack(pady=10)

root.mainloop()
先生と生徒の振り返り会話

生徒

「先生、今回はTkinterでボタンや入力フォーム、ラベルを使ったアプリを作りましたが、どんな順番で学ぶと効率的ですか?」p>

先生

「まずはウィンドウを表示する基本から始め、次にボタンを作ってクリック時の動作を確認します。その後、入力フォームやラベルを組み合わせて小さなアプリを作ると理解が深まります。」

生徒

「ボタンに関数を割り当てたり、入力内容を取得する方法が特に大事ですね。」

先生

「そうです。さらに、pack()grid()でウィジェットを配置して、見やすい画面作りも重要です。入力チェックも取り入れると、より実用的なアプリになります。」

生徒

「わかりました!まずは小さなアプリから始めて、少しずつ機能を増やしていきます。」

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
Python のGUIプログラミングの記事一覧へ
新着記事
New1
Python
Pythonの整数と浮動小数点数の違いとは?数値型の基本を解説
New2
Python
Pythonで文字列をリストに変換する方法!split()とjoin()の使い方
New3
Python
Pythonのbreakとcontinueの違いとは?ループの制御方法をマスター
New4
Python
Pythonのstartswith()・endswith()の使い方!文字列の前後をチェック
人気記事
No.1
Java&Spring記事人気No1
PHP
PHPの特殊文字とエスケープ処理を完全ガイド!初心者向けにhtmlspecialcharsとhtmlentitiesをやさしく解説
No.2
Java&Spring記事人気No2
PHP
PHP の文字列のフォーマット(sprintf, printf)
No.3
Java&Spring記事人気No3
Python
Pythonで文字列を置換する方法!replace()の使い方と正規表現の活用
No.4
Java&Spring記事人気No4
Python
Pythonでリストを分割する方法(スライス / split() / itertools)
No.5
Java&Spring記事人気No5
Python
Pythonで経過時間を測る方法をやさしく解説!初心者向けtime.perf_counterとtime.sleepの使い方
No.6
Java&Spring記事人気No6
Python
Pythonのクロージャー(Closure)とは?関数内関数とnonlocalの活用
No.7
Java&Spring記事人気No7
Python
Pythonのstartswith()・endswith()の使い方!文字列の前後をチェック
No.8
Java&Spring記事人気No8
Python
PythonのSeabornで美しいデータ可視化を実現する方法!初心者でもわかるグラフ作成入門