【Python/tkinter】Entry(エントリー)の使い方

tkinter-entry
スポンサーリンク
スポンサーリンク

PythonでGUIアプリを作成できるモジュールtkinter(ティーキンター)のEntry(エントリー)の使い方について解説します。

サンプルコードはモジュールのインポートを from tkinter import * としています。
関数を呼び出す際にパッケージ名の接頭辞 (tk.Frame()tk.)を省略できるのでおすすめです。

スポンサーリンク

Entryとは

Entry(エントリー)はtkinterの画面に1行分のテキストを表示・変更できるWidget(ウィジェット)です。主に文字列の入力を受け付けてイベント処理に渡す目的で使用します。
※表示だけの目的で使用しても問題ありません。

複数行のテキストを表示したい場合はTextbox(テキストボックス)を使用します。

Entryの使い方

試しにEntryを表示してみます。
下の図のように1行分の入力領域が表示され、クリックするとカーソルが点滅して文字が入力できる状態になります。

Entryのオプション一覧

Entryで指定可能なオプション一覧です。

オプション説明値の形式
bg (background)背景色
(デフォルトはwhite)
色名または16進数カラーコード
fg (foreground)文字色色名または16進数カラーコード
relief枠線タイプ
(デフォルトはsunken)
flat, solid, groove, raised, ridge, sunken
bd (borderwidth)枠線の幅
(デフォルトは1px)
ピクセル値
widthEntryの幅
(デフォルトは20)
フォントタイプ・サイズによる
fontテキストのフォントタイプ・サイズタプル(フォント名, サイズ)
justify文字の配置位置
(デフォルトはLEFT)
LEFT, CENTER, RIGHT
state有効・無効・読取り専用状態を設定normal, disabled, readonly
disabledbackground無効状態時の背景色色名または16進数カラーコード
disabledforeground無効状態時の文字色色名または16進数カラーコード
readolnlybackground読取り専用時の背景色色名または16進数カラーコード
cursorマウスオーバー時のカーソルタイプカーソルタイプ
textvariable文字列を動的に変化させる場合に使用StringVarクラスのインスタンスを指定
takefocusタブキーでEntryにフォーカスするか指定
(デフォルトはTrue)
True, False
highlightcolorフォーカス時の枠線の色色名または16進数カラーコード
highlightbackgroundフォーカスされていない時の線の色色名または16進数カラーコード
highlightthicknessフォーカス時、フォーカスされていない時の枠線の太さピクセル値
insertbackground挿入カーソルの色色名または16進数カラーコード
insertwidth挿入カーソルの幅
(デフォルトは2px)
ピクセル値
insertborderwidthカーソルrelief形状の幅
(値を設定するとraisedのような外観に変更)
insertontime挿入カーソル点滅のONの時間を設定
デフォルトは600
ミリ秒
insertofftime挿入カーソル点滅のOFFの時間を設定
デフォルトは300
ミリ秒
selectbackground選択範囲に使用する背景色色名または16進数カラーコード
selectforeground選択範囲に使用する前景色色名または16進数カラーコード
selectborderwidth選択範囲の周りに使用する境界線の幅ピクセル値

背景色(bg)

Entryの背景色を設定するには bg (background) を指定します。
デフォルトの背景色は白(white)です。

値は色名か16進数カラーコードを指定します。
・参考サイト:色の名前とカラーコードが一目でわかるWEB色見本 原色大辞典

文字色(fg)

文字色を設定するにはfgforeground)を指定します。
値は色名か16進数カラーコードを指定します。
・参考サイト:色の名前とカラーコードが一目でわかるWEB色見本 原色大辞典

枠線(relief, bd)

reliefで枠線を設定、bdで枠線の太さを変更できます。
bd=0ではreleifを設定しても、見た目に変化がありませんので注意してください。

デフォルトは枠線タイプ:sunken 太さ:1pxです。

幅(width)

widthでEntryの幅を設定できます。
幅のサイズはピクセル値ではなく、フォントの種類やサイズによって決まります。
デフォルトは20です。

高さはフォントサイズにより自動的に伸縮するため指定することはできません。
どうしても変更したい場合は、pack()などの配置メソッドのオプションipadyを指定することで変更することは可能です。

フォント設定(font)

フォントの種類とサイズを変更するにはfontをタプル(フォント名, サイズ)で指定します。

幅(width)の設定でも説明したように、使用するフォントタイプやサイズによってEntryの幅が自動で伸縮します。

文字の配置位置(justify)

justifyで文字を入力した時の寄せ方向を指定できます。

状態を指定(state)

stateでEntryの有効・無効状態を指定できます。

・normal:通常状態(デフォルト)
・disabled:無効状態
・readonly:読み取り専用


readonlyは無効状態に似ていますが、文字列の選択・コピーは可能になります。
下図のように文字入力後に入力無効にした後、文字列はコピーできるようしておきたい場合等に利用できます。

ボタンの使用方法については以下の記事を参照してください。
・関連記事:【Python/tkinter】Button(ボタン)の使い方

無効状態時の背景色・文字色(disabledbackground, disabledforeground)

state='disabled' の時の背景色と文字色を、それぞれdisabledbackground, disabledforegroundで設定できます。

値は色名か16進数カラーコードを指定します。
・参考サイト:色の名前とカラーコードが一目でわかるWEB色見本 原色大辞典

読取り専用時の背景色(readonlybackground)

state='readonly' の時の背景色をreadonlybackgroundで設定できます。

カーソル(cursor)

cursorを指定するとマウスオーバーした時のカーソルタイプを変更できます。

カーソルのタイプは全部で75個ありますが、実際に使えそうなものは限られています。
以下がサンプルになります。全タイプを確認したい場合はこちらのサイトで確認できます。

アイコンタイプ
arrow
center_ptr
circle
crosshair
draft_large
draft_small
left_ptr
hand1
hand2
tcross
top_left_arrow
X_cursor

文字列を動的に変更(textvariable)

textvariableを指定することで、ボタンに表示する文字列を動的に変化させることができます。
設定値は、StringVarクラスのインスタンスを参照する変数を指定します。

下の例では、ボタンを押した時にEntryに入力された文字をラベルに表示しています。

フォーカス設定

タブキーを押した時にEntryにフォーカスするかを設定できます。
デフォルトはTrueです。

フォーカス時とフォーカスしていない時の線の色と太さを設定することができます。
・フォーカス時の線の色:highlightcolor
・フォーカスしていない時の線の色: highlightbackground
・枠線の太さ:highlightthickness

挿入カーソルの装飾

挿入カーソルの色、幅、形状を変更することができます。
形状はinsertborderwidthを0より大きい値に設定するとraisedのような立体形状に変更されます。

・挿入カーソルの色:insertbackground
・挿入カーソルの幅:insertwidth
・カーソルrelief形状の幅:insertborderwidth

選択範囲の設定

テキスト選択時の選択範囲の装飾を変更することができます。

装飾は背景色、文字色、挿入カーソルの太さを設定できます。
背景色:selectbackground
文字色:selectforeground
挿入カーソルの太さ:selectborderwidth


以上でEntryの使い方の解説は終了です。

以下の記事も参考にしてみて下さい。
・関連記事:PythonでGUIアプリを作成する(tkinter)
・関連記事:【Python/tkinter】Label(ラベル)の使い方
・関連記事:【Python/tkinter】Button(ボタン)の使い方
・関連記事:【Python/tkinter】Canvas(キャンバス)の使い方