2014-01-31 5 views
0

Я работаю над созданием графического интерфейса, который я могу использовать для выбора аргументов, таких как скрипт, и номера порта для перехода к моему сценарию. Мой код работает, и я получаю ответы от своего переводчика, но по какой-то неизвестной причине графический интерфейс перестает отвечать после отображения результата работыTkinter GUI перестает отвечать при запуске

Я пробовал так много способов запуска интерпретатора (popen, os.system, popen + thread ...), но все тот же результат, он всегда перестает отвечать, и я вынужден заставить его остановить и убить процесс, потому что он продолжает использовать порт.

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() 

, а затем он будет работать должным образом, и вы можете также получить ответы в режиме реального времени!

Смежные вопросы