Python
 Computer >> コンピューター >  >> プログラミング >> Python

Tkinterでテキストウィジェットを読み取り専用(無効化)にする方法

Tkinterでは、テキストウィジェットを無効化(disabled)したいケースがあります。これを実現するには、テキストウィジェットの state オプションを DISABLED に設定します。こうすることでテキストウィジェットがフリーズし、読み取り専用の状態になります。

この記事では、テキストウィジェットとボタンを作成し、ボタンをクリックするとテキストウィジェットを即座に無効化できるサンプルを紹介します。

コード例

# ライブラリのインポート
from tkinter import *

# ウィンドウのインスタンスを作成
win = Tk()

# ウィンドウのサイズを設定
win.geometry("700x400")

def disable_button():
    text.config(state=DISABLED)

# ラベル
Label(win, text="Type Something", font=('Helvetica bold', 25),
      fg="green").pack(pady=20)

# テキストウィジェットを作成
text = Text(win, height=10, width=40)
text.pack()

# 無効化ボタンを作成
Button(win, text="Disable", command=disable_button, fg="white",
       bg="black", width=20).pack(pady=20)

win.mainloop()

実行結果

上記のコードを実行すると、テキストウィジェットと「Disable」ボタンが表示されたウィンドウが作成されます。

Tkinterでテキストウィジェットを読み取り専用(無効化)にする方法

「Disable」ボタンをクリックすると、テキストウィジェットが無効化され、それ以降はウィジェット内に文字を入力できなくなります。

なお、再び編集可能な状態に戻したい場合は、text.config(state=NORMAL) を呼び出すことで元の状態に復帰できます。この仕組みを活用すれば、フォームの入力制御や閲覧専用モードの実装など、さまざまな場面で応用できます。

  1. Tkinterでラベルのテキストを取得する方法を解説

    TkinterのLabel(ラベル)ウィジェットは、ウィンドウ上にテキストや画像を表示するために使用される基本的なコンポーネントです。フォントファミリーやパディング、幅・高さなどのオプションを指定することで、ラベルの見た目を自由にカスタマイズできます。ラベルに設定したテキストを取得したい場合は、ラベルウィジェットに対して [text] を指定するだけで、簡単にその値へアクセスできます。以下に具体的なサンプルコードを示します。サンプルコード# 必要なライブラリをインポート from tkinter import * # tkinterフレームのインスタンスを作成 win = Tk() # ウ

  2. Tkinterでウィジェットを非表示にする方法|pack_forget()の使い方を解説

    Tkinterアプリケーションでウィジェットを一時的に非表示にしたい場合、pack_forget()メソッドを使用します。このメソッドは、ウィンドウ上からウィジェットのマッピングを解除し、画面から見えなくするために広く使われています。pack_forget()メソッドとはpack_forget()は、pack()ジオメトリマネージャーで配置されたウィジェットを非表示にするためのメソッドです。非表示にされたウィジェットは破棄されるわけではなく、再びpack()を呼び出せば元の状態で再表示できるのが特徴です。サンプルコード以下の例では、ラベルテキストとボタンを作成し、ボタンをクリックするとラベルが