小工具显示子进程标准输出?

时间:2011-11-15 08:35:50

标签: python tkinter tk

我有一个基于python的tkinter脚本,它使用子进程模块执行一些命令。 我需要在GUI本身上显示标准输出。 由于我是新来的tk(一周大胆:)),我需要你的建议我该怎么办? 我有两个问题:

  1. 我应该学习哪个小部件来显示标准输出。
  2. 如何将子流程的stdout链接到您提到的小部件。

1 个答案:

答案 0 :(得分:2)

您可能希望使用Tkinter.Text小部件,描述为here

描述很长,但你需要了解的主要是这个小部件可以用作缓冲区,因为文本应该插入其中。

因此,对于subprocess输出中的每个新行,您必须在所需的位置插入文本。例如:

t = Tkinter.Text(root)
while some_condition:
    s = p.readline()          # get subprocess output
    t.insert(END, s)

编辑a look here逐行获取子流程输出。

您可能还希望查看Tkinter.ScrollbarText.see()来调整显示。