2010-04-09 1 views
0

2 개의 버튼이있는 작은 프로그램을 만들었고 각각은 특정 일을합니다. 다음은 간단한 코드 버전입니다.def 함수를 실행할 때 GUI가 멈 춥니 다. 스레드를 사용 하시겠습니까?

버튼이 고정되어 클릭 한 위치에 머무르고 명령이 완료 될 때까지 전체 GUI가 정지되는 것을 제외하고는 문제가 없습니다. 내가 아는 한 스레드는이 상황에서 사용하는 것이 가장 좋지만이 예제에서 구현하는 방법을 모른다.

저는 gui에 glade와 pygtk를 사용합니다.

def do1: 
     t = 2 
     #do something 
     time.sleep(t) 
     #do something 
     time.sleep(t) 
def do2: 
     t = 3 
     #do something 
     time.sleep(t) 
     #do something 
     time.sleep(t) 

class we: 
     wTree = None 
     def __init__(self):     
       self.wTree = gtk.glade.XML("ui.glade") 

       dic = { 
         "on_buttonSone" : self.sone, 
         "on_buttonStwo" : self.stwo, 
       } 
       self.wTree.signal_autoconnect(dic)    
       gtk.main() 

     def sone(self, widget): 
       i = 0 
       while i < 3: 
         t = 1 
         #do something 
         i += 1 
         time.sleep(t)   
       self.wTree.get_widget("entryResult").set_text("Done.") 
     def stwo(self, widget): 
       start = time.clock() 
       array = ['A','B'] 
       adict = {'A':do1,'B':do2} 
       for f in array: 
         adict[f]() 
       end = time.clock() 
       elapsed = end - start 
       gg = round(elapsed,2)    
       self.wTree.get_widget("entryResult").set_text(str(gg))    

go=we() 

답변