このページでは tkinter のウィジェットの1つである「エントリー(Entry
クラス)」の使い方について解説していきたいと思います。
Contents
- エントリーウィジェット
- エントリーの使い方
- エントリーウィジェットのオプション
- textvariable
- width
- justify
- font
- bg(or background)
- fg(or foreground)
- state
- disabledbackground・disabledforeground
- readolnlybackground
- bd(or borderwidth)
- relief
- show
- takefocus
- highlightcolor・highlightbackground・highlightthickness
- selectbackground・selectforeground・selectborderwidth
- insertbackground・insertwidth・insertborderwidth
- insertontime・insertofftime
- xscrollcommand
- cursor
- エントリーウィジェットのメソッド
- まとめ
エントリーウィジェット
まずはエントリーウィジェットがどのようなものであるかについて解説していきます。
エントリーウィジェットとは
エントリーは下の図のようなウィジェットになります(OS 等の環境によっては見た目が異なる可能性があります)。
このエントリーは、主にユーザーから文字列の入力を受け付ける目的で使用します(単に文字列を表示するために使用しても問題ありません)。
エントリーをクリックすると、クリックした位置周辺に挿入カーソルがセットされます。さらに、その状態でキーボードで文字列を入力すれば、その文字列がその挿入カーソルの位置に挿入されます。
エントリーに入力済みの文字列よりも後ろ側をクリックした場合は、文字列の最後の部分に挿入カーソルがセットされます
さらに tkinter のエントリーでは、他のアプリ同様に、文字列をマウスで選択するようなことも可能です。この状態で delete キーや BackSpace キーを押すことで、選択中の文字列を削除することができます。
また、選択中の文字列をエントリーに貼り付けるような操作も行うことができます。
このエントリーは、前述の通り主にユーザーから文字列の入力を受け付ける目的で使用します。
例えば、下記を受け付けるような場合に利用すると便利なウィジェットだと思います。
- ログインを行うようなアプリで、名前やパスワードの入力をユーザーから受け付ける
- ファイルを読み込むようなアプリで、読み込むファイルのファイルパスの入力をユーザーから受け付る
で、そもそもユーザーからの文字列入力を受け付けるのは、その文字列に応じてアプリの動作を変更したい時だと思います。
なので、エントリー使用時は、アプリがなんらかの動作を行うときにエントリーに入力されている文字列を取得し、その文字列に応じた処理を行うようにスクリプトを組むの一般的だと思います。
例えばファイルを読み込むようなアプリの場合は、エントリーからユーザーが入力したファイルパスを取得し、その取得したファイルを読み込むように処理を実行します。
こんな感じで、エントリー使用時は、エントリーを作成することも重要ですが、エントリーから文字列を取得する処理も重要になります。
スポンサーリンク
エントリーとテキストボックスの違い
同様にユーザーから文字列の入力を受け付ける目的で使用するウィジェットとしては「テキストボックス(Text
)」が存在しますが、テキストボックスでは複数行の文字列の入力を受け付けるウィジェットになります。長い文章などを入力できるようにする場合はテキストボックスを用います。
一方で、エントリーで受け付けることができる文字列は1行分のみになります。なので短い文字列、例えば名前やパスワードやファイルパスなどの入力を受け付ける分にはエントリーの方が向いています。
エントリーの使い方
では、このエントリーの使い方について解説していきたいと思います。
エントリーを使用する際の基本的な手順は下記の2つになります。
- エントリーウィジェットの作成
- エントリーに入力された文字列の取得
1つ1つ詳細に解説していきたいと思います。
エントリーウィジェットの作成
エントリーウィジェットは、tkinter の Entry
クラスのコンストラクタを実行することで作成することができます。
# app はメインウィンドウ
entry = tkinter.Entry(
app
)
作成したエントリーを配置すると下の図のようなエントリーがアプリ上に表示されるようになります。
エントリーをクリックすれば、エントリー内部に挿入カーソルが点滅して表示されます。さらに、その状態でキーボードで文字列を入力すれば、その文字列がエントリーに表示されます。
ただ、エントリーは単に作成・配置しただけだと “何を入力するためのエントリー” であるかが分かりにくいです。一方で、エントリー自体には “何を入力するためのエントリー” であるかを説明するためのオプションが存在しません。
“何を入力するためのエントリー” であるかをユーザーに伝えるためには、ラベルやラベルフレームなどの他のウィジェットとエントリーを併用する必要があります。
例えば下記のスクリプトのようにラベルとエントリーを併用することで、”名前を入力するためのエントリー” であることをユーザーに伝えることができ、より使用しやすいアプリに仕立てることができます。
# -*- coding:utf-8 -*-
import tkinter
# アプリの作成
app = tkinter.Tk()
# エントリーの作成
entry = tkinter.Entry(
app
)
entry.grid(column=1, row=0)
# エントリー説明用のラベルの作成
label = tkinter.Label(
app,
text='名前'
)
label.grid(column=0, row=0)
# アプリの待機
app.mainloop()
grid
で配置するときに、ラベルをエントリーの左側に配置するところがポイントです。grid
については下記ページで解説していますので、詳しく知りたい方は下記ページを参考にしていただければと思います。
スポンサーリンク
エントリーに入力された文字列の取得
エントリーウィジェットの作成・配置によりユーザーからの文字列入力を受け付けることができるようになりました。
続いては、エントリーにユーザーが入力した文字列を取得し、それをアプリの動作に反映する方法について解説していきたいと思います。
エントリーから文字列を取得する方法としては大きく分けて下記の2つが存在します。
- エントリーウィジェットの
get
メソッドで取得する - ウィジェット変数の
get
メソッドで取得する
エントリーウィジェットの get
メソッドで取得する
エントリーウィジェットのクラスである Entry
には get
メソッドが存在します。そして get
は “エントリーに入力されている文字列を取得する” メソッドです。
ですので、文字列を取得したいエントリーウィジェットに get
メソッドを実行させることで、エントリーに入力された文字列を取得することができます。
下記はボタンクリック時にエントリーウィジェットの get
メソッドを実行してエントリーに入力された文字列を取得し、それをラベルウィジェットに表示するスクリプトになります。
# -*- coding:utf-8 -*-
import tkinter
def get_func():
# エントリーに入力された文字列を取得してラベルに表示
label.config(text=entry.get())
# アプリの作成
app = tkinter.Tk()
# エントリーの作成
entry = tkinter.Entry(
app
)
entry.pack()
button = tkinter.Button(
app,
command=get_func,
text="ボタン"
)
button.pack()
label = tkinter.Label(
app,
text=""
)
label.pack()
# アプリの待機
app.mainloop()
このスクリプトを実行すると下の図のようなアプリが表示されます。
エントリーにてきとうに文字列を入力後にボタンをクリックすれば、そのエントリーに入力した文字列がラベル部分に表示されます。
今回は単に入力された文字列を表示するだけの例になりますが、例えばこの取得した文字列を使用してログインの OK / NG を判断したり、取得した文字列をファイルパスとしてそのファイルを読み込むようにしたりすることで、ユーザーが入力した文字列をアプリの動作に反映することができます。
ウィジェット変数の get
メソッドで取得する
続いて、エントリーに入力された文字列を取得するためのもう一つの方法としてウィジェット変数を利用するものを説明します。
まだウィジェット変数についてご存知ない方は、下記のページで詳しく解説していますので宜しければこちらをご覧いただければと思います。
Tkinterの使い方:ウィジェット変数について解説【StringVar・BooleanVar・IntVar・DoubleVar】ウィジェット変数をエントリーと連動させておくことで、エントリーに入力されている文字列をウィジェット変数の get
メソッドにより取得することが可能になります。
下記はボタンクリック時にウィジェット変数の get
メソッドを実行してエントリーに入力された文字列を取得し、それをラベルウィジェットに表示するスクリプトになります。
# -*- coding:utf-8 -*-
import tkinter
def get_func():
# エントリーに入力された文字列を取得してラベルに表示
label.config(
text=str_v.get()
)
# アプリの作成
app = tkinter.Tk()
# ウィジェット変数の作成
str_v = tkinter.StringVar()
# エントリーの作成
entry = tkinter.Entry(
app,
textvariable=str_v # ウィジェット変数との連動設定
)
entry.pack()
button = tkinter.Button(
app,
command=get_func,
text="ボタン"
)
button.pack()
label = tkinter.Label(
app,
text=""
)
label.pack()
# アプリの待機
app.mainloop()
アプリの動作はエントリーウィジェットの get メソッドで取得するで紹介した例と全く同じなので説明は省略します。
ウィジェット変数を利用するメリット
上記で解説したように、エントリーウィジェットの入力文字列を取得する方法はエントリーウィジェットの get メソッドで取得するとウィジェット変数の get メソッドで取得するの2つの方法があります。
入力文字列を取得したいだけであれば、上記のどちらの方法を用いても問題はありません。そうなると、ウィジェット変数を用意しなくても良い前者の方法の方が楽だと思います。
ただし、ウィジェット変数を用意しておくと、”スクリプトから入力文字列の変更を行うことができる” というメリットがあります。
エントリーウィジェットには get
メソッドで文字列を取得することは可能ですが、set
メソッドが用意されていないのでスクリプトからエントリーの入力文字列を変更するようなことはできません。また text
オプションがエントリーウィジェットには効かないので、config
メソッドから text
オプションを変更するようなこともできません。
ですので、エントリーウィジェットの入力文字列を変更することができるのは “ユーザーのみ” ということになります。自動的に文字列を変更したり、アプリ起動時に何らかの文字列を表示しておくようなことができません。
一方で、ウィジェット変数には set
メソッドが用意されており、スクリプトからエントリーの入力文字列を変更するようなことが可能です。
ですので、下記のようなことを行いたい場合はウィジェット変数を利用する必要があります。
- アプリ起動直後からエントリーウィジェットに文字列を入力しておきたい
- ボタンクリックなど(要はエントリーウィジェットへの操作以外)の操作が発生した時に自動的にエントリーウィジェットの文字列を変更したい
エントリーウィジェットのオプション
ここまでは、エントリーウィジェットの “最も基本的な使い方” について解説してきました。
ここからはもうちょっと詳細な設定や使い方について解説していきたいと思います。
まずはエントリーウィジェットの詳細な設定を行うオプションについて解説していきます。
エントリーウィジェットに指定可能なオプションの一覧は、下記により表示することが可能です。
# entryはEntryのインスタンス
print(entry.keys())
下記の5つについてはエントリーウィジェットの validation
機能に関するオプションになります。
validate
validatecommand
vcmd
invalidcommand
invcmd
これらに関しては下記ページで解説していますので、特に validation
機能について知りたい、validation
機能を使いたい方は下記ページを読んでみていただければと思います。
私の下記環境での実行結果をもとに説明していますが、環境によっては動きが異なるかもしれません
実際にご自身の環境で実行結果を確認していただくと、より確実に設定の効果を理解することができると思います
- OS:macOS Big Sur
- Python:3.8
- Tkinter:8.6
exportselection
というオプションも用意されているのですが、私の環境ではうまく動作させられなかったため説明は省略させていただいています。
textvariable
textvariable
はエントリーウィジェットと連動させるウィジェット変数を指定するオプションになります。
前述の通り、textvariable
に指定したウィジェット変数に get
を実行させればエントリーウィジェットに入力されている文字列を取得することができます。
さらに set
を実行させればエントリーウィジェットの文字列をスクリプトから変更することもできます。
ウィジェット変数については下記ページで詳細を解説していますので、詳しく知りたい方は下記ページを読んでみてください。
Tkinterの使い方:ウィジェット変数について解説【StringVar・BooleanVar・IntVar・DoubleVar】スポンサーリンク
width
width
はエントリーウィジェットの幅のサイズを指定するオプションになります。
エントリーウィジェットにおける width
はピクセル数ではなく “文字数” を指定します。文字数によってエントリーウィジェットの幅のサイズが決まるので、文字のサイズやフォントの種類によって幅のサイズが変化することになります。
また、エントリーウィジェットは文字列を1行分のみ入力可能な文字列ですので高さを指定するオプションはありません。
下記はエントリーウィジェットの幅のサイズを 10
に指定する例になります。
entry = tkinter.Entry(
app,
width=10
)
justify
justify
はエントリーウィジェットに入力された文字列の寄せ方向を指定するオプションになります。
justify
は下記の3つを指定することが可能です。
tkinter.CENTER
:中央寄せtkinter.LEFT
:左寄せ(デフォルト)tkinter.RIGHT
:右寄せ
下記はエントリーウィジェットへの入力文字列を中央寄せに指定する例になります。
entry = tkinter.Entry(
app,
justify=tkinter.CENTER
)
font
font
はエントリーウィジェットに入力された文字列のフォントを指定するオプションになります。
font
にはフォントの情報を格納したタプルや tkinter.font.Font
クラスのインスタンスを指定することができます。フォントの指定方法の詳細は下記ページで解説していますので、詳しく知りたい方は下記ページを参考にしていただければと思います。
下記はエントリーウィジェットの文字列のサイズを 40
に指定する例になります。
entry = tkinter.Entry(
app,
font=("", 40)
)
スポンサーリンク
bg
(or background
)
bg
(or background
)は(通常状態の)エントリーウィジェットの背景色を指定するオプションになります。
bg
(or background
)にはカラーコードや色名を指定します。
下記はエントリーウィジェットの背景を "yellow"
に指定する例になります。
entry = tkinter.Entry(
app,
bg="yellow"
)
fg
(or foreground
)
fg
(or foreground
)は(通常状態の)エントリーに入力された文字列の色を指定するオプションになります。
fg
(or foreground
)にはカラーコードや色名を指定します。
下記はエントリーに入力された文字列の色を "red"
に指定する例になります。
entry = tkinter.Entry(
app,
fg="red"
)
state
state
はエントリーウィジェットの状態を指定するオプションになります。
エントリーウィジェットの state
に指定可能なパラメータは下記の3つになります。
tkinter.NORMAL
:通常状態(デフォルト)tkinter.DISABLED
:無効状態"readonly"
:読み取り専用状態- (もしかしたら上記のように定義名があるかも)
tkinter.NORMAL
を指定した場合、ユーザーはエントリーへの文字列の入力や文字列の選択・コピー等を行うことができます。
"readonly"
を指定した場合、ユーザーはエントリーへの文字列の入力を行うことができません。一方で文字列の選択やコピー等は行うことができます。
tkinter.DISABLED
を指定した場合は、ユーザーはエントリーへの文字列の入力もできませんし、文字列の選択を行うこともできなくなります。
下記はエントリーウィジェットを読み取り専用状態に設定する例になります。
entry = tkinter.Entry(
app,
state="readonly"
)
スポンサーリンク
disabledbackground
・disabledforeground
disabledbackground
・disabledforeground
はそれぞれエントリーウィジェットの無効状態時の背景色と文字の色を指定するオプションになります。
disabledbackground
・disabledforeground
にはカラーコードや色名を指定します。
下記は無効状態時のエントリーウィジェットの背景を "gray"
、文字の色を "white"
に指定する例になります。
entry = tkinter.Entry(
app,
state=tkinter.DISABLED,
disabledbackground="gray",
disabledforeground="white"
)
readolnlybackground
readonlybackground
はエントリーウィジェットの読み取り専用状態時の背景色を指定するオプションになります。読み取り専用状態時の文字の色を指定するオプションは存在せず、fg
や foreground
で指定した文字の色がそのまま使用されます。
readonlybackground
にはカラーコードや色名を指定します。
下記は読み取り専用状態時のエントリーウィジェットの背景を "green"
に指定する例になります。
entry = tkinter.Entry(
app,
state="readonly",
readonlybackground="green"
)
bd
(or borderwidth
)
bd
(or borderwidth
)はエントリーウィジェットの枠線の太さを指定するオプションになります。
bd
(or borderwidth
)にはピクセル数を指定します。
下記はエントリーウィジェットの枠線の太さを 10
px に指定する例になります。
entry = tkinter.Entry(
app,
bd=10
)
スポンサーリンク
relief
relief
はエントリーウィジェットの見た目を指定するオプションです。
relief
に指定可能なパラメータは下記の6つになります。
tkinter.RAISED
tkinter.SUNKEN
tkinter.FLAT
tkinter.RIDGE
tkinter.GROOVE
tkinter.SOLID
下記はエントリーウィジェットの見た目を tkinter.RAISED
に指定する例になります。
entry = tkinter.Entry(
app,
bd=10,
relief=tkinter.RAISED
)
relief
は枠線の描画方法を変更することでウィジェットの見た目を変更するものですので、枠線がない場合(bd = 0
の場合)は relief
を指定しても見た目が変わらないので注意してください。
show
show
はエントリーウィジェットの文字列を別の文字に置き換えるためのオプションになります。
通常エントリーウィジェットには入力された文字列がそのまま表示されます。ですが、この show
を指定することで、入力された文字列ではなく show
に指定した文字を表示するように設定することができます。
例えばパスワードを入力するような場合に、他の人から入力文字列が見えないよう、全ての文字が *
に置き換えて表示されることがありますよね?show
に "*"
を指定すれば、これと同じようなことができるようになります。
下記はエントリーウィジェットに入力された文字を *
に置き換えて表示するように指定する例になります。
entry = tkinter.Entry(
app,
show="*"
)
takefocus
takefocus
はタブキーによるフォーカスの有効無効を指定するオプションになります。
エントリーウィジェットにおいては、フォーカスをあてることでそのエントリーウィジェットに対して文字列を入力することができるようになります。
takefocus
に指定可能なパラメータは下記のようになります。
0
:フォーカスを無効(フォーカスがあてられない)1
:フォーカスを有効(フォーカスがあてられる)(デフォルト)
下記はエントリーウィジェットへのフォーカスを無効に指定する例になります。
entry = tkinter.Entry(
app,
takefocus=0
)
スポンサーリンク
highlightcolor
・highlightbackground
・highlightthickness
highlightcolor
・highlightbackground
・highlightthickness
は、エントリーウィジェットにフォーカスがあてられた時&フォーカスが外れた時の囲い線の見た目を指定するオプションになります。
highlightcolor
:フォーカスがあてられた時の囲い線の色highlightbackground
:フォーカスが外れた時の囲い線の色highlightthickness
:囲い線の太さ
highlightcolor
と highlightbackground
にはカラーコードや色名を、highlightthickness
にはピクセル数を指定します。
下記はこれらのキーワードを指定するスクリプトの例になります。
entry = tkinter.Entry(
app,
highlightthickness=10,
highlightbackground="blue",
highlightcolor="red"
)
上記で作成したエントリーは下の図のようなものになります。
青い線がフォーカスに対するエントリーの囲い線になります。この囲い線の太さが、highlightthickness
で指定している 10
px になります。
また、現状このエントリーにフォーカスが当たっていないので、この囲い線の色は highlightbackground
で指定している "blue"
になります。
この状態でエントリーをクリックしてエントリーにフォーカスをあてると、今度はこの囲い線の色が highlightcolor
で指定している "red"
に変化します。
selectbackground
・selectforeground
・selectborderwidth
selectbackground
・selectforeground
・selectborderwidth
は選択した文字列や選択カーソルの見た目を変更するためのオプションになります。
より具体的には、これら3つにより下記を指定することができます。
selectbackground
:選択カーソルの背景色(カラーコードや色名を指定)selectforeground
:選択されている文字列の色(カラーコードや色名を指定)selectborderwidth
:選択カーソルの枠線の太さ(ピクセル数を指定)
選択カーソルと枠線は同じ色で見分けがつきませんので、selectborderwidth
の指定サイズ大きくすると選択カーソル自体が大きくなるように感じると思います。
下記は選択カーソル関連のオプションの指定例になります。
entry = tkinter.Entry(
app,
selectbackground="green",
selectforeground="white",
selectborderwidth=10
)
insertbackground
・insertwidth
・insertborderwidth
insertbackground
・insertwidth
・insertborderwidth
は挿入カーソルの見た目を変更するためのオプションになります。
より具体的には、これら3つにより下記を指定することができます。
insertbackground
:挿入カーソルの色(カラーコードや色名を指定)insertwidth
:挿入カーソルの幅(ピクセル数を指定)insertborderwidth
:挿入カーソルの斜面部の幅(ピクセル数を指定)
insertborderwidth
に 0
よりも大きい値を指定すると挿入カーソルの見た目が relief=tkinter.RAISED
で指定したような見た目の形状になります。
insertborderwidth
はこの形状における斜面部の幅を指定するオプションになります。
下記は挿入カーソルの見た目関連のオプションの指定例になります。
entry = tkinter.Entry(
app,
insertbackground="green",
insertwidth=20,
insertborderwidth=10
)
スポンサーリンク
insertontime
・insertofftime
insertontime
は挿入カーソルの点灯時間を、insertofftime
は挿入カーソルの消灯時間をそれぞれ指定するためのオプションになります。要は挿入カーソルの点滅間隔を変更するためのオプションです。
insertontime
と insertofftime
にはミリ秒単位で整数を指定します。
下記は点灯時間を 1000
ms に、消灯時間を 100
ms に指定する例になります。
entry = tkinter.Entry(
app,
insertontime=1000,
insertofftime=100
)
xscrollcommand
xscrollcommand
はエントリーウィジェットとスクロールバーを連動させるためのオプションになります。スクロールバーと連動させることで、入力した文字列がエントリーウィジェットのサイズを超える場合に、エントリーウィジェットの横方向のスクロールをスクロールバーで行うことが可能になります(スクロールバーが無くても挿入カーソルの移動によりスクロールを行うことは可能です)。
スクロールバーの設定や具体的なスクリプトについては下記ページで解説していますので、詳細は下記ページを参考にしていただければと思います。
Tkinterの使い方:スクロールバー(Scrollbar)の使い方cursor
cursor
はエントリーウィジェット上にマウスカーソルが入った時のカーソルの見た目(アイコン)を指定するオプションです。
例えば cursor
には下記のような値を設定することが可能です。
"hand"
"ibeam"
"wait"
"poof"
OS 毎に指定可能な値が異なる可能性が高いので注意してください。
下記はエントリーウィジェット上のマウスカーソルの見た目を "hand"
に指定する例になります。
entry = tkinter.Entry(
app,
cursor="hand"
)
スポンサーリンク
エントリーウィジェットのメソッド
最後にエントリーウィジェット(Entry
クラス)のメソッドについて解説していきます。
引数として “何文字目か” を指定するメソッドが多いですが、全て最初の文字を 0
文字目として考えて指定する必要がある点に注意してください(最初の文字を 1
文字目と考えないように)。
また、selection_from
などの selection_
から始まるメソッドは、select_
とメソッド名を置き換えても同様の動作を行います。例えば selection_from
と select_from
は同じ動作を行うメソッドになります。
ですので、このページでは selection_
から始まるメソッド名で解説を行いますが、select_
から始まるメソッド名に置き換えても同様の動作を実現することができます。
get
get
はエントリーウィジェットに入力されている文字列を取得するメソッドです。
text = entry.get()
引数は不要です。
実行するとエントリーウィジェットに入力されている文字列が返却されます。
delete
delete
はエントリーウィジェットに入力されている文字列を削除するメソッドです。
entry.delete(first, last)
delete
メソッドを実行すると first
文字目の文字から last - 1
文字目の文字までがエントリーウィジェットから削除されます。
last
は省略することができ、この場合は first
文字目の文字のみが削除されます。
スポンサーリンク
icursor
icursor
はエントリーウィジェットに挿入カーソルをセットするメソッドです。
entry.icursor(index)
icursor
メソッドを実行すると、index
文字目の文字の直前に挿入カーソルがセットされます。
エントリーウィジェットに入力されている文字数が index
以下の場合は、文字列の最後尾に挿入カーソルがセットされます。
icursor
メソッドはエントリーウィジェットにフォーカスがあたっている時のみに効果のあるメソッドのようです
insert
insert
はエントリーウィジェットに文字列を挿入するメソッドです。
entry.insert(index, string)
insert
メソッドを実行すると、index
文字目の文字の直前に文字列 string
が挿入されます。
エントリーウィジェットに入力されている文字数が index
以下の場合は、文字列の最後尾に string
が挿入されます。
selection_adjust
selection_adjust
は文字列を選択するメソッドの1つです。
entry.selection_adjust(index)
selection_adjust
を実行すると、”現在の挿入カーソルの位置” から “index
文字目の文字の直前” までが選択されます。
選択される範囲が “index
文字目の文字の直前まで” ですので、挿入カーソルが index
文字目よりも後ろ側にある場合は index
文字目の文字も含めて選択されます。
逆に挿入カーソルが index
文字目の文字よりも前側にある場合は index
文字目の文字は含めずに選択されます。
挿入カーソルの位置が index
文字目の文字の直前と一致する場合は文字列の選択は行われません。
スポンサーリンク
selection_clear
selection_clear
はエントリーウィジェットにおける文字列を選択を解除するメソッドです。
entry.selection_clear()
selection_clear
は引数は不要で、エントリーウィジェットに入力されている文字列を選択した状態で実行すると、その選択が解除されます。
selection_from
selection_from
は文字列を選択するメソッドの1つです。次に説明する selection_to
と組み合わせて使用します。
entry.selection_from(index)
selection_from
を実行すると index
文字目の文字の直前に選択位置の開始点がセットされます。ただし、これだけでは選択が行われません。selection_from
実行後に、次に説明する selection_to
を実行することで選択が行われます。
selection_to
selection_to
は文字列を選択するメソッドの1つです。1つ前に説明した selection_from
と組み合わせて使用します。
entry.selection_to(index)
selection_to
を実行すると index
文字目の文字の直前に選択位置の終了点がセットされます。
1つ前に説明した selection_from
メソッドにより選択位置の開始点をセットしておけば、その開始点から終了点の間の文字が選択されます。
スポンサーリンク
selection_range
selection_range
は文字列を選択するメソッドの1つです。前述で説明した selection_from
と selection_range
を同時に実行するようなメソッドになります。。
entry.selection_range(start, end)
selection_range
を実行すると start
文字目の文字から end-1
文字目の文字までが選択されます。
selection_present
selection_present
はエントリーウィジェットの文字列が選択中であるかどうかを判断するメソッドになります。
is_selection = entry.selection_present()
selection_present
には引数は不要です。
selection_present
を実行すると、戻り値としてエントリーウィジェットの文字列が選択されている場合は True
が、それ以外の場合は False
が取得できます。
まとめ
このページでは tkinter におけるエントリーウィジェットについて解説しました!
エントリーウィジェットを用いることで、GUI アプリの中でユーザーからの文字列入力を受け付けることができるようになります。
さらに、このエントリーウィジェットに入力された文字列を用いて、例えばログインなどの機能も実現できるようになります。
ユーザー名やパスワード、ファイルパス、サイズ設定などをユーザーに入力してもらいたい時に活躍するウィジェットなので、ぜひ使い方を覚えておいてください!