0

私はGUIデザインにまったく慣れておらず、コアアプリケーションとのコミュニケーションに苦労しています。

コアコードを実行するために使用するスレッドがあります。ユーザーがスタートボタンをクリックすると開始されます。反対側には、GUIがあります。プロセス中に更新してほしい。

私のスレッドは現在キューに入力されており、このキューのメッセージをステータスバーに設定したいと思います。

現在、私は使用しています:

     while not self.stopPull:
         try:
             print self.mess_queue.get() # would set my status bar
         except Queue.Empty:
            continue

スレッドコードは本当に基本的です:

    while not self.stoprequest.isSet():
            bla()#some processing . . .
            self.result_q.put("bla")
            bla()#some other processing . . .
            self.result_q.put("blabla")

物事は、これはもちろんブロッキングです。。。

それで、キュー内の新しいメッセージをリッスンするために別のスレッドを作成する必要がありますか、それとも新しいメッセージがプルされたときに何らかの中断を起こす方法がありますか?

繰り返しになりますが、私はコミュニケーションプロセスに完全に無知であり、Webでこの主題に関するドキュメントを見つけることができなかったため、いくつかの基本的なキーワードを見逃す必要があります。

ヘルありがとうございます!

4

1 に答える 1

0

GUI をブロックしないようにするには、スレッドを使用する必要があります。

pygtk FAQ には、これ専用の部分があります: http://faq.pygtk.org/index.py?req=all#20.1

于 2013-01-14T13:23:36.157 に答える