【Python tkinter】Entry(エントリー)の使い方:オプション一覧(サイズ・外観)
2021.05.09 /
本記事ではPythonのTkinterにおける、Entry(エントリー)ウィジェットの使い方(作成・オプション一覧)を詳しく解説していきます。
PythonにはGUIアプリケーションを開発するための様々なツールが提供されています。
そういった中でTkinterは、最もよく使われるモジュールの一つです。
Tkinterは標準ライブラリに含まれているので、わざわざ別にインストールする必要がなく、Pythonが使える環境であればどなたでも使用できます。
本記事で解説するEntry(エントリー)ウィジェットは、ユーザーからの入力を受け付けるテキストボックスを生成します。
様々な用途で使われるEntryウィジェットの生成方法や、外観の変更に使うオプションを詳しく見ていきましょう。
まだTkinterの基本的な使い方がわからない方は以下記事をご参照ください。
【Python】tkinterを使ったGUIアプリケーションの作成方法
Entry(エントリー)ウィジェット
Entry(エントリー)ウィジェットとは
Entryウィジェットとは、Tkinterで使用するGUIアプリケーションを作成するための部品の一つです。
Tkinterには以下に示すような12種類のウィジェットが用意されており、これらを使ってGUIアプリケーションを作成していきます。
- Frame
参考:【Python tkinter】Frame(フレーム)の使い方 - Label
参考:【Python tkinter】Label(ラベル)の使い方 - Button
参考:【Python tkinter】Button(ボタン)の使い方 - Checkbutton
- Scale
Entryウィジェットでは、ユーザーがテキストを入力できる、いわゆる1行のテキストボックスを生成できます。
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")
ボーダーサイズ: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))
カーソルの設定:cursor
オプションcursorによって、テキストボックスにマウスがホバーしたときのカーソルの種類を指定することができます。
entry = tk.Entry(frame, cursor="dot")
カーソルの種類については、以下サイトを参考にしてください。
状態の変更:state
オプションstateによって、テキストボックスの状態をしていできます。
tk.DISABLEDを指定すると、テキスト入力が不可になります。
stateのデフォルト値はNORMALです。
entry = tk.Entry(frame, state=tk.DISABLED)
文字色:fg or foreground
オプションbgまたはforegroundによって、テキストボックスに入力される文字色を指定することができます。
entry = tk.Entry(frame, fg="red")
テキストの位置:justify
オプションjustifyによって、テキストボックスに入力される文字の位置を指定することができます。
entry = tk.Entry(frame, justify="center")
オプションjustifyのデフォルトはleftです。
ボーダースタイル:relief
オプションreliefによって、テキストボックスのボーダースタイル(デザイン)を変更することができます。
entry1 = tk.Entry(frame, relief="flat")
ボーダースタイル | 説明 |
---|---|
FLAT | 平面 |
RAISED | ボタンが隆起 |
SUNKEN | ボタンが凹む |
GROOVE | 枠が凹む |
RIDGE | 枠が隆起 |
SOLID | 枠が実線 |
reliefを指定する場合は、bdを1以上に指定しましょう
表示文字の変更:show
オプションshowによって、文字が入力されたときに代わりに表示する文字を指定することができます。
パスワードを入力してもらう際に、パスワードを隠すために***を表示する場合などで使用します。
entry = tk.Entry(frame, show="*")
Entryウィジェットから文字列の取得・セット・クリア
Entryウィジェットで生成されるテキストボックスから文字列を取得・セット・クリアするには次のメソッドを使用します。
- 取得:get()メソッド
- セット:insert()メソッド
- クリア:delete()メソッド
テキストボックスの上記操作については以下記事で詳しく解説しています。
【Python tkinter】テキストボックスから値を取得・セット・クリアする方法
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アプリ開発の参考にしてください。