Tkinter子进程锁定GUI而不是将stdout返回给文本

时间:2014-03-25 06:41:28

标签: python tkinter subprocess stdout

我已经和Tkinter争了一段时间了,并且已经耗尽了我用来引用它的大部分资源。我在这里找到了几个类似的主题,但没有一个能让我到达我需要的地方。

我有一个长时间运行的python脚本,我希望建立一个gui来与它进行交互。我目前正在尝试将来自CLI的数据传回GUI,但在调用子进程时似乎无法获取任何数据和GUI锁定。

我对python和堆栈溢出很新,所以如果我错过了一些愚蠢的事情或者没有以正确的方式提出问题,我会道歉。

import Tkinter
from Tkinter import *
import subprocess
import sys


top = Tkinter.Tk()

def startScript():
   root = Tk()

   cli = subprocess.Popen(['python.exe', 'aScript.py'], shell=False, stdout=subprocess.PIPE)
   root.update()

   while True:
       line = cli.stdout.readline()
       if line == '' and process.poll() is not None:
           break
       print line
       t.insert(tk.END, line)


B = Tkinter.Button(top, text ="Start Script", command = startScript)

B.pack()
top.mainloop()

0 个答案:

没有答案