Tkinter: テキストボックス(Entry)の作成・配置・フォントサイズ

PythonのTkinterでテキストボックスを作成する場合は、 Entryウィジェットを使用します。

テキストボックス(Entry)の作成・配置

ウィンドウにテキストボックス(Entry)を一つ作成し、 配置します。 配置にはplace()メソッドを使用して、 位置やサイズを設定してます。

import tkinter as tk

# ウィンドウ作成
root = tk.Tk()

# ウィンドウサイズ
root.geometry("300x200")

# テキストボックスの作成と配置
txt = tk.Entry(root)
txt.place(x=20, y=20, width=150, height=30)

# メインループ
root.mainloop()

実行結果は次の通りです。

テキストボックス

コード解説

txt = tk.Entry(root)

Entryウィジェットの第一引数に親ウィジェットを指定します。 今回はウィンドウに直接配置するため「root」を指定しています。

txt.place(x=20, y=20, width=150, height=30)

place()メソッドでx座標、y座標、幅、高さを指定しています。

テキストボックスのフォントサイズを変更

テキストボックスのフォントサイズを変更したい場合は, fontオプションを使用します。

# フォントサイズ指定 フォントタイプはデフォルト
fonts = ("", 14)

# テキストボックスの作成と配置
txt = tk.Entry(root, font=fonts)
txt.place(x=20, y=20, width=150, height=30)

テキストボックス(Entry)の内容を取得

テキストボックスの内容を取得するにはget()メソッドを使います。

txt.get()

テキストボックス(Entry)の内容をクリア

テキストボックスの内容をクリアしたい場合は、 delete()メソッドを使います。

txt.delete(0, tk.END)

第1引数は削除開始位置、第2引数は削除終了位置を指定します。 「delete(0, tk.END)」と指定することでクリアと同じ意味になります。

テキストボックス(Entry)に文字列を挿入

テキストボックスに文字列を挿入するには、 insert()メソッドを使用します。

txt.insert(tk.END, "挿入文字列")

第1引数は文字を挿入する位置、第2引数は挿入する文字列を指定します。

ボタンクリックでテキストボックスの内容を取得・クリアする

テキストボックスの使用例として、 ボタンをクリックしたときにテキストボックスの内容を取得・クリアする コードを紹介します。

import tkinter as tk
from tkinter import messagebox

# テキストボックスの内容を取得
def btn_copy_click():
	messagebox.showinfo("サンプル", txt.get())

# テキストボックスの内容をクリア
def btn_clear_click():
	txt.delete(0, tk.END)

# ウィンドウ作成
root = tk.Tk()

# ウィンドウサイズ
root.geometry("300x200")

# フォントサイズ指定 フォントタイプはデフォルト
fonts = ("", 12)

# テキストボックスの作成と配置
txt = tk.Entry(root, font=fonts)
txt.place(x=20, y=20, width=260, height=30)

# ボタンの作成と配置
btn_copy = tk.Button(root, text="取得", 
					font=fonts, command=btn_copy_click)
btn_copy.place(x=20, y=80, width=120, height=50)

btn_clear = tk.Button(root, text="クリア", font=fonts, 
					command=btn_clear_click)
btn_clear.place(x=150, y=80, width=120, height=50)

# メインループ
root.mainloop()

上記のコードを実行すると、 次の画面が表示されます。

テキストボックスとボタン

テキストボックスに内容を入力して左側の「取得」ボタンを押すと、 メッセージボックスにテキスト内容が表示されます。

右側の「クリア」ボタンを押すと、 テキストボックスのボックスの内容がクリアされます。

コード解説

# テキストボックスの内容を取得
def btn_copy_click():
	messagebox.showinfo("サンプル", txt.get())

テキストボックスの内容を取得しているのが 「txt.get()」の部分です。

# テキストボックスの内容をクリア
def btn_clear_click():
	txt.delete(0, tk.END)

内容をクリアしているのが「txt.delete(0, tk.END)」の部分です。