【Python tkinter】Entry(エントリー)の使い方:オプション一覧(サイズ・外観)

2021.05.09 /

【Python tkinter】Entry(エントリー)の使い方:オプション一覧(サイズ・外観)

本記事ではPythonTkinterにおける、Entry(エントリー)ウィジェットの使い方(作成・オプション一覧)を詳しく解説していきます。

PythonにはGUIアプリケーションを開発するための様々なツールが提供されています。
そういった中でTkinterは、最もよく使われるモジュールの一つです。

Tkinterは標準ライブラリに含まれているので、わざわざ別にインストールする必要がなく、Pythonが使える環境であればどなたでも使用できます。

本記事で解説するEntry(エントリー)ウィジェットは、ユーザーからの入力を受け付けるテキストボックスを生成します。

様々な用途で使われるEntryウィジェットの生成方法や、外観の変更に使うオプションを詳しく見ていきましょう。

まだTkinterの基本的な使い方がわからない方は以下記事をご参照ください。

Entry(エントリー)ウィジェット

Entry(エントリー)ウィジェットとは

Entryウィジェットとは、Tkinterで使用するGUIアプリケーションを作成するための部品の一つです。

Tkinterには以下に示すような12種類のウィジェットが用意されており、これらを使ってGUIアプリケーションを作成していきます。

Entryウィジェットでは、ユーザーがテキストを入力できる、いわゆる1行のテキストボックスを生成できます。

tkinter:Entryウィジェット
import tkinter as tk

root = tk.Tk()
root.title("Entry widget")
root.geometry("300x60")

frame = tk.Frame(root, pady=20, padx=5)
entry = tk.Entry(frame)

frame.pack()
entry.pack()

root.mainloop()

ユーザーに「アカウント情報(ユーザー名、メールアドレスなど)の入力」、「データベースに登録する情報の入力」等をしてもらう使い方ができます。

複数行のテキスト入力のためには、Entryウィジェットではなく、textウィジェットを使う必要があります。

Entry(エントリー)ウィジェットの生成

Entryウィジェットの生成は、以下のように記述します。

entry = tk.Entry(parent, options)

parentには表示させたい親ウィジェット(frameウィジェット)を指定します。

optionsにはEntryウィジェットに用意されているオプションを指定します。

Entryウィジェット:オプション一覧

Entryウィジェットに用意されているオプションの一覧を以下に記します。

オプション名 説明
bg or background テキストボックス内の背景色
bd or borderwidth 枠線のサイズ:デフォルト2ピクセル
width 横幅を指定(半角の文字数)
font テキストのフォントタイプ・大きさの指定
command テキストボックス内部の変更がある度に呼び出される関数を指定
cursor マウスホバー時のカーソルの種類
state 状態を指定
textvariable テキストを変数で指定
fg or foreground 入力される文字色
justify テキストの入力位置:デフォルトはleft
relief テキストボックスのボーダーデザイン
show テキスト入力時に指定した文字を入力文字の代わりに表示

各オプションの使用方法

背景色:bg or background

オプションbgまたはbackgroundによって、テキストボックス内の背景色を指定することができます。

entry = tk.Entry(frame, bg="green")

entryウィジェット:オプションbgについて

ボーダーサイズ:bd or borderwidth

オプションbdまたはborderwidthによって、枠線のサイズを指定することができます。
bdのデフォルト値は2ピクセルです。

entry = tk.Entry(frame, bd=5)

横幅:width

オプションwidthによって、テキストボックスの横幅を指定できます。
widthのデフォルトは20です。

ポイント

横幅の指定は、ピクセルではなく半角の文字数を指定します

entry = tk.Entry(frame, width=40)

フォンタイプ・文字サイズ:font

オプションfontによって、テキストの大きさやフォントタイプを指定することができます。
第一引数にフォントタイプ、第二引数に文字サイズを指定します。

entry = tk.Entry(frame, font=("Lucida Console",15))

entryウィジェット:オプションfontについて

カーソルの設定:cursor

オプションcursorによって、テキストボックスにマウスがホバーしたときのカーソルの種類を指定することができます。

entry = tk.Entry(frame, cursor="dot")

カーソルの種類については、以下サイトを参考にしてください。

Python – Tkinter Cursors

状態の変更:state

オプションstateによって、テキストボックスの状態をしていできます。
tk.DISABLEDを指定すると、テキスト入力が不可になります。

stateのデフォルト値はNORMALです。

entry = tk.Entry(frame, state=tk.DISABLED)

文字色:fg or foreground

オプションbgまたはforegroundによって、テキストボックスに入力される文字色を指定することができます。

entry = tk.Entry(frame, fg="red")

entryウィジェット:オプションfgについて

テキストの位置:justify

オプションjustifyによって、テキストボックスに入力される文字の位置を指定することができます。

entry = tk.Entry(frame, justify="center")

entryウィジェット:オプションjustifyについて

オプションjustifyのデフォルトはleftです。

ボーダースタイル:relief

オプションreliefによって、テキストボックスのボーダースタイル(デザイン)を変更することができます。

entry1 = tk.Entry(frame, relief="flat")

entryウィジェット:オプションreliefについて
ボーダースタイル 説明
FLAT 平面
RAISED ボタンが隆起
SUNKEN ボタンが凹む
GROOVE 枠が凹む
RIDGE 枠が隆起
SOLID 枠が実線
ポイント

reliefを指定する場合は、bdを1以上に指定しましょう

表示文字の変更:show

オプションshowによって、文字が入力されたときに代わりに表示する文字を指定することができます。

パスワードを入力してもらう際に、パスワードを隠すために***を表示する場合などで使用します。

entry = tk.Entry(frame, show="*")

entryウィジェット:オプションshowについて

Entryウィジェットから文字列の取得・セット・クリア

Entryウィジェットで生成されるテキストボックスから文字列を取得・セット・クリアするには次のメソッドを使用します。

  • 取得:get()メソッド
  • セット:insert()メソッド
  • クリア:delete()メソッド

テキストボックスの上記操作については以下記事で詳しく解説しています。

Entryウィジェットの高さの設定

オプション一覧をみてすでに気付いていると思いますが、Entryウィジェットの高さを変更するオプションは存在しません。

オプションfontで文字サイズを変更することで、自動的にテキストボックスの高さは変更されます。

しかし調整される高さよりもテキストボックスの高さを大きくしたい場合はどうすればいいのか。

答えは、Entryウィジェットを配置する際にipadyやheightを指定することで、高さを変更できます。

packまたはgridでEntryウィジェットを配置する場合は、ipadyでテキストボックスの高さを調整することができます。

entry.pack(ipady=20)

placeでEntryウィジェットを設置した場合は、heightで高さを指定できます。

まとめ

本記事「【Python tkinter】Entry(エントリー)の使い方:オプション一覧(サイズ・外観)」はいかがでしたか。

EntryウィジェットはTkinterでGUIアプリケーションを作成する上で、必ず必要となるウィジェットです。

本サイトOFFICE54では、Entry以外のウィジェットについても詳しく使い方を解説していますので、ぜひGUIアプリ開発の参考にしてください。