Tkinterでウィジェットを一時的に削除する方法 – place_forget()の使い方を解説
Tkinterのジオメトリマネージャーとは
TkinterでFrameやCanvasの中にウィジェットを配置する際には、複数のジオメトリマネージャー(配置マネージャー)を選択できます。ジオメトリマネージャーを利用することで、ウィジェットのレイアウトや、Tkinterウィンドウ上での表示位置を柔軟に制御することが可能です。
place()メソッドは、その中でも最もシンプルなジオメトリマネージャーのひとつです。ウィジェットの位置を相対的かつ明示的に指定でき、さらに他のウィジェットとの相対的な位置関係を基準に配置することもできるため、ウィジェット同士を分けてレイアウトしたい場合にも便利です。
place_forget()でウィジェットを一時的に非表示にする
アプリケーションから特定のウィジェットを一時的に取り除きたい場合には、place_forget()メソッドを使用します。このメソッドを呼び出すと、該当ウィジェットが画面上から消えますが、ウィジェット自体は破棄されないため、必要になったタイミングで再び表示できます。
なお、使用しているジオメトリマネージャーに応じて、pack_forget()やgrid_forget()といった対応するメソッドも用意されています。それぞれ、pack()やgrid()で配置されたウィジェットを一時的に非表示にするために使われます。
サンプルコード
# Import the library
from tkinter import *
# Create an instance of window
win=Tk()
# Set the geometry of the window
win.geometry("700x300")
def forget_label():
label.place_forget()
# Create a label widget
label=Label(win, text="This is a new Label text", font='Arial 17 bold')
label.place(relx=0.5, rely=0.2, anchor=CENTER)
# Create a button
button=Button(win, text="Remove It", command=forget_label)
button.place(relx=0.5, rely=0.5, anchor=CENTER)
win.mainloop()実行結果
上記のコードを実行すると、ラベルウィジェットとボタンが配置されたウィンドウが表示されます。

「Remove It」ボタンをクリックすると、forget_label()関数が呼び出され、place_forget()によってラベルウィジェットがウィンドウから一時的に削除されます。

このように、place_forget()を使えばウィジェットを破棄することなく画面から隠すことができるため、表示・非表示を切り替えるUIを実装する際に非常に役立ちます。
-
TkinterのボタンでEntryウィジェットのテキスト・値を設定する方法
はじめにTkinterのEntryウィジェットは、1行分のテキストを表示・入力するためのウィジェットです。このウィジェットの値や内容は、ボタンのクリックをトリガーとして設定することができます。Entryウィジェットに対する主な操作には、「insert(挿入)」と「delete(削除)」の2種類があります。ここでは、TkinterのButtonウィジェットを使って、Entryウィジェットの内容を設定する方法を解説します。コード例#Import the required libraries from tkinter import * #Create an instance of tkinter
-
ウィンドウを表示せずにtkinterでクリップボードの内容を取得する方法
アプリケーション開発において、クリップボードに格納されている内容を取得したいケースはよくあります。PythonのGUIライブラリ「tkinter」では、clipboard_get()メソッドを使うことで、クリップボード内のテキストデータに簡単にアクセスできます。クリップボードからデータを取得する仕組みclipboard_get()でクリップボードからテキストを取得すると、そのデータはキャッシュメモリ上に保持されます。これにより、プログラムのデバッグや、取得したテキストをフレーム(ウィジェット)上に表示して確認することが可能になります。基本的な流れは以下のとおりです。Tkインスタンスを作成し、ウ