0

この質問のフォローアップとして、Python/Tkinter で子ウィンドウを作成し、30 ~ 60 秒のプロセスのテキストの進行状況の更新を表示し、プロセスが完了するとそれ自体を破棄する方法があるかどうかを知りたいと思いました。問題のプロセスには、ファイルのコピー、データベースの更新など、複数の手順が含まれます。

リンク先の質問には、ユーザー入力を収集し、[OK]/[キャンセル] ボタンをクリックすると閉じるカスタム ダイアログ ウィンドウを作成するために使用したアプローチを示すコード サンプルがあります。これと同じアプローチを使用しても、作成したい status-update 子には機能しないことがわかりました。すべてのコードをメソッド内に配置するshowWinと、ウィンドウが表示される前にそれ自体を破壊しようとする競合状態に陥ります (使用した場合でもupdate_idletasks)。しかし、ファイル/DB コードを別のメソッドに移動しようとすると、それをトリガーするイベントがないため、処理は行われません。

この目的のために子ウィンドウの使用をあきらめる必要がありますか? または、競合状態を回避しながら処理を実行できるようにするための取り決めはありますか?

4

1 に答える 1