2011-02-03 4 views
1

2番目の機能が完了したときに応答します。のpython gtkの問題

誰も私に同じことをしなければならないと言うことができますか?

答えて

2

イベントループ内の関数を呼び出すと、ウィンドウが反応しなくなります(このスレッドはウィンドウを再ペイントし、マウスのクリックなどを処理します)。この関数は、gtk(およびウィンドウシステム全体)で応答しなくなります。 )。あなたが呼び出した関数がすぐに返ってくると、応答しないことに気付かないでしょうが、関数が重い作業をすると、あなたの質問に記述した状況になります。

2番目の関数は、独自のスレッド(動作中のスレッド)で実行する必要があります。この関数が返った後にウィンドウを更新する必要がある場合は、このループを(例えば、glib.idle_addを呼び出す)イベント・ループで実行してください。そうしないと、異常なクラッシュが発生することがあります。