私が開発しているプログラムは、スレッドを使用して実行時間の長いプロセスを処理します。Gauge Pulse を使用して、実行時間の長いスレッドの進行中に実際に何かが行われていることをユーザーに示したいと考えています。そうしないと、大きなファイルを処理するときに視覚的に何も起こらず、ユーザーはプログラムが何もしていないと思うかもしれません。
プログラムのステータス バー内にゲージを配置しました。私の問題はこれです。ゲージ パルスを呼び出そうとすると問題が発生します。コードをどこに配置しても、高速で実行されてから停止するか、正しい速度で数秒間実行されてから停止します。
以下の1行のコードをスレッド自体に配置しようとしました。また、実行時間の長いプロセス スレッド内から別のスレッドを作成して、以下のコードを呼び出してみました。私はまだ同じ種類の問題を抱えています。
wx.CallAfter を使用できるとは思いません。これはポイントを無効にするためです。Pulse は、事後ではなく、プロセスの実行中に呼び出す必要があります。また、time.sleep(2) を使用してみましたが、プロセスが遅くなるため、これも望ましくありません。これは避けたいことです。time.sleep(2) を使用しても、同じ問題が発生しました。
どんな助けでも大歓迎です!
progress_bar.Pulse()