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

tkinterでウィンドウを閉じる方法|destroy()メソッドの使い方を解説

tkinterを使えば、Pythonで手軽にGUIアプリケーションを作成できます。しかし、タイトルバー右上の×ボタン以外の方法でウィンドウやフレームを閉じたい場合、どのように実装すればよいか悩むこともあるでしょう。そのようなときに役立つのが、ウィンドウを破棄して閉じるための .destroy() メソッドです。

tkinterの各ウィジェットや属性は互いに独立しているため、「ウィンドウを閉じる処理」を専用の関数として分離して定義できます。これにより、ボタンのクリックイベントからウィンドウを閉じる動作を自由に制御可能です。

サンプルコード

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

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

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

# ウィンドウを閉じる関数を定義
def close_win():
    win.destroy()

# ラベルを作成
Label(win, text="Click the button to Close the window",
font=('Poppins bold', 25)).pack(pady=20)

# ボタンを作成
Button(win, text= "Close", font=('Poppins bold', 16),
command=close_win).pack(pady=20)

win.mainloop()

実行結果

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

tkinterでウィンドウを閉じる方法|destroy()メソッドの使い方を解説

表示された「Close」ボタンをクリックすると、close_win() 関数が呼び出され、win.destroy() によってウィンドウが破棄されてアプリケーションが終了します。

補足:destroy()とquit()の違い

destroy() は対象のウィジェットやウィンドウ自体を破棄するメソッドで、メインループ(mainloop())も終了させます。一方、quit() はメインループのみを停止し、ウィジェット自体は破棄しません。単一ウィンドウのアプリでは destroy()、複数ウィンドウの一部だけを閉じたい場合も destroy() を個別に呼び出すのが一般的です。用途に応じて適切に使い分けましょう。

  1. Tkinterでボタンを動的に生成・配置する方法をわかりやすく解説

    Tkinterを使ったGUIアプリケーション開発では、ボタンを1つずつ手作業で作成するのではなく、ループ処理によって動的に生成すると、コードがすっきりし、保守性も向上します。この記事では、Tkinterウィンドウ内にボタンを動的に作成する方法を、実際のコード例とともに詳しく解説します。ボタンを動的に生成するとは、イベント(command)を追加しながら、ボタンの表示内容や機能を柔軟にカスタマイズすることを指します。基本的な流れまず、ノートブックやスクリプト内でtkinterライブラリをインポートします。次にButton関数を使ってインスタンスを作成します。Button関数には、主に以下のような

  2. Tkinterでスプラッシュ画面を作成する方法をわかりやすく解説

    アプリケーションを起動した際に一瞬だけ表示される「スプラッシュ画面」。ロゴや読み込み中表示などを映し出すことで、アプリに洗練された印象を与えられます。Pythonの標準GUIライブラリであるTkinterを使えば、このスプラッシュ画面も簡単に実装できます。スプラッシュ画面作成の基本手順Tkinterでスプラッシュ画面を作成するには、以下の手順に従います。ラベルなどを配置したスプラッシュ画面を作成するoverrideredirectメソッドを使って、スプラッシュ画面を枠なし(ボーダーレス)にするスプラッシュ画面の直後に表示されるメインウィンドウを生成する関数を定義するafterメソッドを使って、