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

Jinku Hu 2023年1月30日 2019年12月14日
  1. Tkinter テキストボックスの例
  2. Tkinter テキストボックスのデフォルトテキスト
Tkinter チュートリアル - テキストボックス

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

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

Tkinter テキストボックスの例

import tkinter as tk
from tkinter import ttk

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

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',

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

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


この例では、ユーザーが国名と都市名を入力できる 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 デフォルトテキストを設定する

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



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

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

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

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

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

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

Founder of Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.