2012-07-03 5 views
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") 

것입니다,이 코스 차단이다. . .

그래서 내 대기열에서 새 메시지를 듣기 위해 다른 스레드를 만들어야합니까, 아니면 새 메시지를 가져올 때 방해가 될 수있는 방법이 있습니까?

는 다시 한번 통신 프로세스와 완전히 무지한 나는, 나는 웹에서 주제에 대한 문서를 찾을 수 없습니다 때문에, 몇 가지 기본적인 키워드를 그리워해야합니다.

은 HEL 주셔서 감사합니다! GUI를 비 차단 될하기 위해서는

+0

확인이 시작처럼 보인다 :

pygtk 자주 묻는 질문이 전용 부분이 http://faq.pygtk.org/index.py?req=all#20.1. 추가 스레드가 유효한 해결책이 될 것 같다 다음 – jlengrand

+0

'queue.get()'차단의'empty' 예외 _instead_을 던져'nowait' 옵션이 있습니다. –

답변

관련 문제