ポップアップ情報メッセージに を使用していtk_messageBox
ます。ok-cancel
特定のボタンを押すとメッセージが表示されますがRun
、クリックした後、ok
またはcancel
ポップアップ情報メッセージ内でRun
ボタンが押されたままになります (添付の画像に示されているように)。このように押されていない通常の状態に戻りたいですか?
1 に答える
1
問題は、ボタンの外観を更新するために必要な UI の更新を処理せずに、フォアグラウンドでタスクを実行していることです。UI を内部状態と同期させるには、実行ボタンを無効 ( -state disabled
)に設定し、update
その後すぐに実行する必要があります (一度に複数のクリック処理が行われないように、ボタンの状態を無効に設定します)。 . 次に、タスクが終了したら、状態を通常に戻します。
それほど複雑ではありませんが、おそらく次のようなヘルパー プロシージャがあれば、はるかに簡単です。
proc doProcessing {} {
.runButton configure -state disabled
update
doTheLongProcessing
.runButton configure -state normal
}
button .runButton -text Run -command {
if {[tk_messageBox -type okcancel -message "is it ok?"] eq "ok"} {
doProcessing
}
}
pack .runButton
于 2016-03-02T09:58:48.130 に答える