フローの進行のために完了する必要がある小さな GUI を作成しています。私が望むのは、GUI を作成し、GUI が閉じられたときに 1 または 0 を返す proc を作成し、次のようにフローを続行することです。
first part of the code
...
...
if {![open_gui]} {
return
}
second part of the code
...
...
GUI は、保存ボタンとキャンセル ボタンを備えた単純な 3 つのエントリです。保存ボタンが押された場合、いくつかの値がデータ モデルに格納され、関数はキャンセル ボタンが押された場合、または GUI が閉じられた場合に 1 を返します。ウィンドウを閉じても何も起こらず、proc は 0 を返します。
これは可能ですか?
今私がしたことは、コードを 2 つのピースに分割することです (code_part_1
およびcode_part_2
) 最初の部分を実行してから、GUI を開き、保存ボタンで 2 番目の部分を呼び出し、キャンセルすると GUI が閉じます。
code_part_1
open_gui_split
そして機能open_gui_split
は次のとおりです。
proc open_gui_split {} {
# ...
set save_b [button $win.save_b -text save -command [list code_part_2]
# ...
}
* - 提示されたすべてのコードはアーキテクチャの表現にすぎず、実際のコードではありません。