ここでは、Tkinterでの「Entry」の使用例をまとめています。
この記事の対象
Entryとは?
Entryとはテキストボックスのことを指します。
何か文字列を入力したい場合に使用するものです。例えば、passwordなどです。
基本的な型
tk.Entry(option)
「tk.Entry」でテキストボックスを作成できます。また、オプションも以下のようなものが指定可能です。
Option | 内容 |
bg | テキストボックスの背景色指定 |
bd | 枠線サイズの指定。デフォルトは2ピクセル |
width | 横幅指定 |
font | テキストのフォントタイプ・サイズの指定 |
command | 関数の指定 |
cursor | マウスホバー時のカーソルの種類指定 |
state | 状態の指定。tkinter.NORMAL、tkinter.DISABLE、readonlyを指定 |
textvariable | テキストを変数指定 |
fg | 入力文字列の色指定 |
justify | 入力位置指定。デフォルトはleft |
relief | ボーダーデザインの指定 |
show | テキスト入力時に指定した文字を入力文字の代わりに表示 |
Entryの作成
from tkinter import *
import tkinter as tk
#1---画面生成
root = Tk()
root.title("Test")
root.configure()
root.geometry("640x395")
#2---entry作成
txt = tk.Entry(width = 65)
txt.place(x=10, y=10)
root.mainloop()
1の部分では画面を作成しています。次に2の部分でEntryを大きさと場所を指定して作成しています。
結果
Entryの表示を「*」に指定
from tkinter import *
import tkinter as tk
#1---画面生成
root = Tk()
root.title("Test")
root.configure()
root.geometry("640x395")
#2---entry作成
txt = tk.Entry(show='*',width = 65)
txt.place(x=10, y=10)
root.mainloop()
任意の文字列表示にする場合は、オプションの「show」を使用するだけです。
結果
Entryに初期値(デフォルトのテキスト)を入れる
from tkinter import *
import tkinter as tk
#1---画面生成
root = Tk()
root.title("Test")
root.configure()
root.geometry("640x395")
#2---entry作成
txt = tk.Entry(width = 65)
txt.insert(0, "Default Text")
txt.place(x=10, y=10)
root.mainloop()
デフォルトで任意のテキストを入れておきたい場合は、「insert」を用いることで簡単に設定できます。insertメソッドの引数は以下になります。
***.insert(位置,文字列)
結果
EntryをReadonlyにする
from tkinter import *
import tkinter as tk
#1---画面生成
root = Tk()
root.title("Test")
root.configure()
root.geometry("640x395")
#2---entry作成
txt = tk.Entry(width = 65, state = 'readonly')
txt.place(x=10, y=10)
root.mainloop()
状態の指定は、tkinter.NORMAL、tkinter.DISABLE、readonlyから選択できます。
NORMAL:文字の入力、選択、コピーが可能
DISABLE:文字入力は不可、選択・コピーは可能
readonly:入力、選択、コピー不可
結果
Entryに参照のpathを出力
from tkinter import *
import tkinter as tk
from tkinter import filedialog
#1---ボタンクリック
def btn_click():
dirname = filedialog.askdirectory() #askdirectory
if len(txt.get()) >= 1 :
txt.delete(0, tk.END)
txt.insert(tk.END,dirname)#txtへの插入
#2---画面生成
root = Tk()
root.title("Test")
root.configure()
root.geometry("640x395")
#3---entry作成
xt = tk.Entry(width = 65, bg = "#FAF8EC")
txt.place(x=10, y=10)
#4---ボタン作成
button = Button( text = "参照", command = btn_click)
button.pack(expand=True, anchor=tk.CENTER)
root.mainloop()
1の部分ではボタンをクリックした後の動きを関数化したものです。内容としては、entryに何かしら文字列があったら削除して、pathを書き込むというものです。
entryに文字列があるかどうかは「get()」を用いることで取得できます。
書き込む場合は、「insert()」を用います。引数に位置と書き込む内容を指定します。