TkinterでEntryウィジェットを無効化する方法をわかりやすく解説
TkinterのEntryウィジェットは、1行分のテキスト入力を受け付ける入力フィールドです。アプリケーションの用途に合わせて、ウィジェットの幅や背景色、フォントサイズなどを自由にカスタマイズできます。
ここでは、特定の条件下でEntryウィジェットへの入力を禁止したいケースを想定します。Entryウィジェットを無効化するには、コンストラクタまたはconfigメソッドで state='disabled' を指定します。無効化されたEntryウィジェットはグレーアウト表示となり、ユーザーは値の編集や入力ができなくなります。
サンプルコード
具体的な動作を例で確認してみましょう。この例では、Entry(master, **options) コンストラクタを使ってEntryウィジェットを作成し、クリックするとそれを無効化するボタンも配置します。ボタンに紐づけられた disable_entry() 関数が実行されると、Entryウィジェットがグレーアウトして操作できなくなります。
# 必要なライブラリをインポート
from tkinter import *
# tkinterフレームのインスタンスを作成
win = Tk()
# ウィンドウサイズを設定
win.geometry("700x350")
def disable_entry():
entry.config(state= "disabled")
# Entryウィジェットを作成
entry=Entry(win, width= 40, font= ('Helvetica 16'))
entry.pack(pady=20)
# ボタンを作成
button=Button(win, text="Disable Entry", font=('Arial', 12), command=disable_entry)
button.pack()
win.mainloop()実行結果
上記のコードを実行すると、Entryウィジェットと「Disable Entry」ボタンが配置されたウィンドウが表示されます。

次に、「Disable Entry」ボタンをクリックすると、Entryウィジェットが無効化されます。

補足:無効化を解除する方法
一度無効化したEntryウィジェットを再度編集可能な状態に戻したい場合は、entry.config(state="normal") を呼び出すことで元に戻せます。フォームの送信中に入力をロックしたい場合など、状態の切り替えを組み合わせるとより実用的なUIを実現できます。
-
Tkinterで複数行入力に対応したエントリウィジェットを作成する方法
Tkinterでは、標準の Entry ウィジェットは1行のみの入力しかサポートしていません。そこで、ユーザーが複数行のテキストを入力できるエントリウィジェットを作成したい場合は、Text() コンストラクタを使用します。Textウィジェットは複数行入力はもちろん、スクロールや文字装飾など、より高度なテキスト編集機能も備えています。サンプルコード以下の例では、複数行入力に対応したTextウィジェットを含むウィンドウを作成しています。#Import the library from tkinter import * #Create an object of tkinter window or
-
TkinterのEntryウィジェットにデフォルトテキストを設定する方法
TkinterのEntryウィジェットは、ユーザーが入力した1行のテキストを表示・取得するための基本的なGUI部品です。ログインフォームやサインアップフォームなど、ユーザーとのやり取りが必要なさまざまなアプリケーションで広く利用されています。 Entryウィジェットにデフォルトテキスト(初期表示テキスト)を設定したい場合は、insert()メソッドを使用します。挿入位置とデフォルトとして表示したいテキストを引数として渡すだけで、簡単に実装できます。 実装例 以下の例では、デフォルトテキストが設定されたEntryウィジェットを作成しています。 # tkinterライブラリをインポート from