Tkinter チュートリアル - テキストボックス

  1. Tkinter テキストボックスの例
  2. Tkinter テキストボックスのデフォルトテキスト

Tkinter Entry ウィジェットを使用すると、ユーザーは 1つのフォントタイプのみを含む 1 行のテキストを入力できます。

多くの行が必要な場合は、Tkinter Text ウィジェットを使用する必要があります。Entry ウィジェットを使用して、単一行のテキストを表示することもできます。

Tkinter テキストボックスの例

Tkinter Entry_Basic.py
import tkinter as tk
from tkinter import ttk

def callbackFunc():
    resultString.set("{} - {}".format(landString.get(),
                                      cityString.get()))
     
app = tk.Tk() 
app.geometry('200x100')

labelLand = tk.Label(app,
                    text = "Country")
labelLand.grid(column=0, row=0, sticky=tk.W)
labelCity = tk.Label(app,
                    text = "City")
labelCity.grid(column=0, row=1, sticky=tk.W)

landString = tk.StringVar()
cityString = tk.StringVar()
entryLand = tk.Entry(app, width=20, textvariable=landString)
entryCity = tk.Entry(app, width=20, textvariable=cityString)

entryLand.grid(column=1, row=0, padx=10)
entryCity.grid(column=1, row=1, padx=10)

resultButton = tk.Button(app, text = 'Get Result',
                         command=callbackFunc)

resultButton.grid(column=0, row=2, pady=10, sticky=tk.W)

resultString=tk.StringVar()
resultLabel = tk.Label(app, textvariable=resultString)
resultLabel.grid(column=1, row=2, padx=10, sticky=tk.W)

app.mainloop()

この例では、ユーザーが国名と都市名を入力できる GUI を作成し、Get Result ボタンがクリックされた後に入力された情報を表示します。

Tkinter Tutorial_Entry Basic

entryLand = tk.Entry(app, width=20, textvariable=landString)

Tkinter Entry ウィジェットの例を作成しました。幅は 20 文字単位です。入力ボックスには 20 文字しか表示できませんので、テキスト行が 20 文字を超える場合は、矢印を使ってテキストを移動して残りのテキストを表示する必要があります。

Entry ウィジェットのテキストは、Tkinter 文字列変数 landString に割り当てられます。landString.get() メソッドでテキストを取得し、landString.set() メソッドでテキストを設定できます。set() メソッドを使用すると、入力ボックスのテキストが自動的に更新されます。

注意

StringVarget() メソッドの他に、ウィジェットオブジェクトの get() メソッドを使用 Entry して、Entry ボックス内の文字列を取得することもできます。

Tkinter テキストボックスのデフォルトテキスト

Entry ウィジェットのテキストを設定するには 2つの方法があります。

set() メソッドで Tkinter の Entry デフォルトテキストを設定する

上記の例で示したように、set() メソッドを使用して StringVarTkinter のデフォルトテキストを設定できます Entry

例えば、

landString.set("Netherlands")

デフォルトのテキストを次のように Netherlands 設定します

insert() メソッドで Tkinter の Entry デフォルトテキストを設定する

insert(index, string) メソッド string は、指定された index 位置にテキストを挿入します。indexEND である場合、テキストを Entry ウィジェットを追加します。

entryLand.insert(tk.END, "Netherlands")

デフォルトのテキストを Netherlands に設定します。

注意

index がウィジェットの既存の文字列の長さよりも大きい場合、insert(END, string) と同じ効果があります。

comments powered by Disqus