2012-01-02 9 views
1

私はGUIを使ってPythonアプリケーションを作成しようとしていますが、私はPythonのスレッドパッケージに問題があります。Pythonスレッディング、新しいスレッドがスタックする

import pygtk 
pygtk.require('2.0') 
import gtk 
import threading 
import time 

class gui: 
    def main(self): 
     print "starting gui" 
     gtk.main() 

class logic: 
    def __call__(self): 
     time.sleep(1) 
     print "did logic" 

if __name__ == "__main__": 
    threading.Thread(None, logic()).start() 
    gui().main() 

出力:

starting gui 

ロジックが起こることはありません。どうして?これをどうすれば解決できますか?私は時間の最も長いため、この問題に対処

答えて

4

は、ここにあなたが解決策を見つける場所です:

http://faq.pygtk.org/index.py?req=show&file=faq20.006.htp

+0

うわー、それはかなり複雑です。誰も私がそれを再コンパイルせずに別のスレッドを使用することができる別のGUIライブラリをお勧めできますか? – Kevin

+0

スレッドを使用するためにGTKを再コンパイルする必要はありません。私が知っているすべてのディストリビューションには、Windows上のGTKインストーラを含むスレッドサポート付きのGTKがコンパイルされています。また、メインスレッド(例えば、スレッドにメッセージを送る、idle_addを使うなど)だけでGUIにアクセスする場合、 'threads_enter' /' threads_leave'は必要ありません。 – jdm

関連する問題