2014-01-31 115 views
0

我正在製作GUI,我可以使用它來選擇參數,如腳本和端口號以傳遞給我的腳本。 我的代碼正在工作,我從我的解釋器獲取答案,但由於某些未知原因,GUI在顯示運行結果後停止響應Tkinter GUI在啓動時停止響應

我嘗試了很多方法來運行解釋器(popen,os.system,popen +線程...)但仍然是相同的結果,它總是停止響應,我不得不強制它停止並終止進程,因爲它繼續使用端口。

def interpreter(): 
    que2.put_nowait(queue[0]) 
    b = que2.get() 
    a = que1.get() 
    c = 'python C:\\workspace\\Project_Interpreter\\Tool-v1.0.py -s %s %s' % (b, a) 
    ps=sp.Popen(c , stdout=PIPE) 

    def stdoutprocess(o): 
     while True: 
      stdoutdata = o.stdout.readline() 
      if stdoutdata: 
       sys.stdout.write(stdoutdata) 
      else: 
       break 
    t = threading.Thread(target=stdoutprocess,args=(ps,)) 
    t.start() 
    ps.wait() 
    t.join() 
    print "Return code", ps.returncode 

回答

0

我設法弄清楚什麼是problem.In其實我把該計劃擱置等待什麼,然後我提出的線程等待也,所以程序崩潰。 所以長話短說,應該做的是去除兩條線

ps.wait() 
t.join() 

,然後它會正常工作,並且您還可以實時檢索答案!