Python,Tkinter,嵌入了一个交互式控制台并重定向stdout

时间:2016-05-04 11:13:13

标签: python tkinter console stdout xterm

目前在我的工作实习中,由于Tkinter,我必须创建一个GUI。 在这个GUI中我必须嵌入一个控制台,这个控制台必须是交互式的,即stdout& amp; stderr将显示在此控制台中,用户可以键入命令。

在我的第一次研究中,我认为xterm可能很有用,但我没有找到我们如何重定向stdout& stderr到它

由于

1 个答案:

答案 0 :(得分:0)

您应该首先分析您的期望:

  • 来自用户的输入:您想要什么,您想如何处理它? (这真的是shell输入吗?)
  • 反馈:你想要展示什么,它是如何产生的? (直接shell输出?)

xterm只是 shell 周围的图形界面。这意味着捕获键盘输入到其窗口,将其提交到 shell ,然后将其 shell stdout和stderr显示到窗口,关于格式化代码(不适用于vt220终端+ ANSI颜色代码)。在GUI中使用xterm是不常见的。

shell 可以是任何处理标准输入并使用标准输出和标准错误流的命令行程序。它通常是/bin/shbin/bash,但可以是任何计划。

如果你真的想这样做,你可以在子进程中启动xterm,使用一个特殊的shell将所有输入行传递给主程序,例如通过Unix域套接字,然后回显主程序发送的内容它。

更常见的是,GUI使用文本小部件来获取用户和另一个或相同小部件的输入以显示反馈。在您分析该级别的事物并设计全局架构之前,请不要过多考虑子进程模块的语法。