destroyはウィンドウの破棄。
destroyに続けて破棄したいウィジェット名(ウィンドウ名)並べる。
ウィンドウ名に"."を指定した場合はアプリケーション全体が終了する。
始まりの#ウィンドウの破棄のサンプルプログラムの#はコメントに使用されるもの。
プログラムとしては実行されないのでメモとして活用できる。
-text" "の部分はダブルクォーテーションで囲まれた中は全角でも半角でもいいけど、そのまま記述を続けてスペースを全角でつけてしまうとNGなので注意。
\はバックスラッシュで示されることが多い。プログラムの内容を変えないまま、見やすさのためだけに改行したい場合なんかに便利。
-command{exit}はプログラムの終了を意味している。
ボタン2の-commandのtoplevelは新しくウィンドウを作りなさいという命令。
新しくウィンドウを作り、「Ok」と「キャンセル」ボタンを作った。
destroy .は親となるウィンドウを破棄するということ。
子供のウィンドウも同時に破棄される。
destroy .subは.subのウィンドウを破棄しなさいという命令。
-fill xはボタンの大きさが違うので、横幅を揃えなさいということ。
#!/usr/bin/wish
#ウィンドウの破棄のサンプルプログラム
label .l1
button .l1.b1 -text "メイン ウィンドウ 閉じる" -bg pink4 -fg white \
-command {exit}
button .l1.b2 -text "サブ ウィンドウ 開く" -bg pink4 -fg white \
-command {
toplevel .sub
button .sub.b3 -text "Ok" -bg pink4 -fg orange4 -fg white \
-command {destroy .}
button .sub.b4 -text "キャンセル" -bg pink4 -fg orange4 -fg white \
-command {destroy .sub}
pack .sub.b3 .sub.b4 -fill x
}
pack .l1 .l1.b1 .l1.b2 -side top -fill x
「メイン ウィンドウ 閉じる」ボタンを押すと、プログラムは終了し、「サブ ウィンドウ 開く」ボタンを押すと新しいウィンドウがtoplevelによってつくられる。

「Ok」ボタンを押すとすべてのウィンドウが破棄され、「キャンセル」ボタンを押すと新しく開いたウィンドウだけが破棄される。
