0

私は最後の3つの眠れぬ夜のためにWxpythonでGUIを使用してPythonでコード化されたプロジェクトに取り組んでいます。実際にはメインの親フレーム内で別のスレッドで新しいサブフレームを実行しています。その仕事をして閉じました。threading.Thread.join()メソッドを使用しようとしましたが、効率的に機能していないようで、サブフレームを閉じるとメインの親フレームがハングします。これを行うための効率的な方法はありますか?

4

1 に答える 1

4

サブフレームとその ShowModal() メソッドの代わりに wx.Dialog を使用して、メイン フレームの実行を停止します。技術的には、フレームの MakeModal() メソッドを使用して同様の効果を得ることもできますが、ダイアログを使用する方が理にかなっていると思います。

ところで、wxPython (または任意の GUI ツールキット) でスレッドを使用する場合は、ツールキットのスレッドセーフ メソッドを使用して GUI を更新する必要があります。未定義の動作であるため、スレッドから GUI 要素に直接アクセスしようとしないでください。代わりに、wxPython のスレッドセーフなメソッドである wx.CallAfter、wx.CallLater、または wx.PostEvent を使用してください。

以下も参照してください。

于 2012-10-02T14:28:52.927 に答える