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

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

Tkinterアプリケーションでウィジェットを一時的に非表示にしたい場合、pack_forget()メソッドを使用します。このメソッドは、ウィンドウ上からウィジェットのマッピングを解除し、画面から見えなくするために広く使われています。

pack_forget()メソッドとは

pack_forget()は、pack()ジオメトリマネージャーで配置されたウィジェットを非表示にするためのメソッドです。非表示にされたウィジェットは破棄されるわけではなく、再びpack()を呼び出せば元の状態で再表示できるのが特徴です。

サンプルコード

以下の例では、ラベルテキストとボタンを作成し、ボタンをクリックするとラベルが非表示になる仕組みを実装します。

# 必要なライブラリをインポート
from tkinter import *

# tkinterフレームのインスタンスを作成
win = Tk()

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

# リサイズを無効化
win.resizable(False, False)

# ウィジェットを非表示にする関数
def make_invisible(widget):
    widget.pack_forget()

# ラベルを作成
label = Label(win, text="Hello World!", font=('Helvetica bold', 20),
              anchor="center")
label.pack(pady=20)

# クリックするとラベルを非表示にするボタンを作成
btn = Button(win, text="Click", font=('Helvetica bold', 10),
             command=lambda: make_invisible(label))
btn.pack(pady=20)

win.mainloop()

実行結果

上記のコードを実行すると、次のようなウィンドウが表示されます。

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

この状態で「Click」ボタンをクリックすると、テキストラベルが非表示になります。

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

補足:gridやplaceで配置した場合の非表示方法

なお、pack()以外のジオメトリマネージャーを使っている場合は、対応するメソッドを使用します。grid()で配置したウィジェットにはgrid_forget()、place()で配置したウィジェットにはplace_forget()を呼び出すことで、同様に非表示にできます。

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

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

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

    Tkinterでは、テキストウィジェットを無効化(disabled)したいケースがあります。これを実現するには、テキストウィジェットの state オプションを DISABLED に設定します。こうすることでテキストウィジェットがフリーズし、読み取り専用の状態になります。この記事では、テキストウィジェットとボタンを作成し、ボタンをクリックするとテキストウィジェットを即座に無効化できるサンプルを紹介します。コード例# ライブラリのインポート from tkinter import * # ウィンドウのインスタンスを作成 win = Tk() # ウィンドウのサイズを設定 win.geomet