Tkinter GUI在启动时停止响应

时间:2014-01-31 10:58:57

标签: python user-interface tkinter popen

我正在制作一个GUI,我可以使用它来选择脚本和端口号等参数传递给我的脚本。 我的代码正在运行,我从我的解释器得到答案,但由于某些未知的原因,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

1 个答案:

答案 0 :(得分:0)

我设法弄明白问题是什么。实际上我把程序搁置等待什么,然后我也让线程等待,所以程序崩溃了。 长话短说,应该做的是删除两行

ps.wait()
t.join()

然后它会正常工作,您也可以实时检索答案!