Tkinterでウィンドウを閉じる方法|destroy()メソッドの使い方とサンプルコード
Tkinterアプリケーションを実行すると、ウィジェットやフレームなどの要素を含むGUIベースのウィンドウが表示されます。この記事では、関数を使ってアプリケーションのウィンドウを閉じる方法を解説します。
PythonのTkinterにおけるdestroy()メソッドは、mainloop()関数による通常の処理を終了させ、アプリケーションを完全に閉じるために使用されます。このメソッドを呼び出すと、ウィンドウとそのすべての子ウィジェットが破棄され、プログラムが終了します。
サンプルコード
以下の例では、クリックするとアプリケーションを閉じるButton(ボタン)オブジェクトを作成します。ポイントは、ボタンのcommandオプションに、ウィンドウを破棄する関数を指定することです。
# tkinterライブラリをインポート
from tkinter import *
# tkinterフレームのインスタンスを作成
win = Tk()
# ウィンドウサイズを設定
win.geometry("650x250")
# ウィンドウを閉じる関数を定義
def close_app():
win.destroy()
# テキストラベルを作成
Label(win, text= "Click to close the Window", font= ('Helvetica bold', 14)).pack(pady=20)
# ウィンドウを閉じるためのボタンを作成
button= Button(win, text= "Close", command= close_app, font=('Helvetica bold', 10))
button.pack(pady=10)
win.mainloop()実行結果
上記のコードを実行すると、ウィンドウを閉じるためのボタンが配置されたウィンドウが表示されます。

「Close」ボタンをクリックすると、ウィンドウが閉じられ、アプリケーションが正常に終了します。
補足:quit()メソッドとの違い
Tkinterには似た動作をするquit()メソッドも存在します。quit()はイベントループ(mainloop)のみを終了させるのに対し、destroy()はウィジェットを含むウィンドウ全体を破棄します。確実にアプリケーションを終了させたい場合は、destroy()を使用するのが一般的です。
-
Tkinterウィンドウを常に他のウィンドウの最前面に表示する方法
GUIプログラムを作成する際、Tkinterのウィンドウはデフォルトでは他のアプリケーションの背後に表示されることがあります。つまり、プログラムを実行しても、そのウィンドウが他のソフトウェアの裏側に隠れてしまうケースがあるのです。 Tkinterウィンドウを常に他のウィンドウより前面に表示させたい場合は、attributes(-topmost, True) プロパティを使用します。この設定を行うことで、ウィンドウが最前面に固定され、ユーザーが他のアプリケーションを操作している間も、常に手前に表示され続けるようになります。 コード例 # ライブラリのインポート from tkinter impo
-
tkinterでウィンドウを閉じる方法|destroy()メソッドの使い方を解説
tkinterを使えば、Pythonで手軽にGUIアプリケーションを作成できます。しかし、タイトルバー右上の×ボタン以外の方法でウィンドウやフレームを閉じたい場合、どのように実装すればよいか悩むこともあるでしょう。そのようなときに役立つのが、ウィンドウを破棄して閉じるための .destroy() メソッドです。tkinterの各ウィジェットや属性は互いに独立しているため、「ウィンドウを閉じる処理」を専用の関数として分離して定義できます。これにより、ボタンのクリックイベントからウィンドウを閉じる動作を自由に制御可能です。サンプルコード# ライブラリをインポート from tkinter impo