当前位置: 首页 > 面试题库 >

将命令行结果重定向到tkinter GUI

别浩漫
2023-03-14
问题内容

我创建了一个在命令行上打印结果的程序。(它是服务器,并在命令行上打印日志。)

现在,我想对GUI看到相同的结果。

如何将命令行结果重定向到GUI?

请提出一个技巧,以轻松地将控制台应用程序转换为简单的GUI。

请注意,它应在Linux和Windows上运行。


问题答案:

您可以创建一个脚本包装程序,该程序包装程序将您的命令行程序作为子进程运行,然后将输出添加到诸如文本小部件之类的东西中。

from tkinter import *
import subprocess as sub
p = sub.Popen('./script',stdout=sub.PIPE,stderr=sub.PIPE)
output, errors = p.communicate()

root = Tk()
text = Text(root)
text.pack()
text.insert(END, output)
root.mainloop()

脚本是您的程序。您显然可以用其他颜色或类似的颜色打印错误。



 类似资料:
  • 问题内容: 我正在尝试将命令输出重定向到变量: 然后阅读: 运行它时,输出如下: 但是变量保持空白。对于其他命令,我已经尝试过相同的方法,并且一切正常。 这会将文件列表写入变量,以便以后可以读取。我应该怎么做才能使其正常工作? 问题答案: 也许输出去了,不是吗? 尝试这个:

  • 问题内容: 一个人如何从Python调用一个包含管道的shell命令并捕获输出? 假设命令是这样的: 我想要做的与Perl相当的东西是这样的: 问题答案: 使用subprocess.PIPE,如子流程文档部分“替换外壳管道”中所述: 或者,使用模块,管道成为功能的组合:

  • 问题内容: 我试图将命令输出也扔到文件加上控制台。这是因为我要在文件中保留输出记录。我正在执行以下操作,并将其追加到文件,但不在终端上打印输出。 问题答案: 是的,如果您重定向输出,它将不会出现在控制台上。使用。

  • 问题内容: 我正在尝试从我的Go代码运行一个相当简单的bash命令。我的程序写出了IPTables配置文件,我需要发出命令以使IPTables从该配置刷新。在命令行中,这非常简单: 但是,我终生无法弄清楚如何使用exec.Command()发出此命令。我尝试了一些方法来实现此目的: 毫不奇怪,这些都不起作用。我还尝试通过管道将文件名输入标准输入来将文件名输入命令: 这也不起作用,不足为奇。我 可以

  • 问题内容: 我在cyberciti.biz的评论中看到了这个有趣的问题。 我发现我什至找不到在sh的单行命令中执行此操作的灵活方法。 到目前为止,我对解决方案的想法是: 但是您会看到,这不是同步的,而且致命的是,它是如此丑陋。 欢迎与您分享这个想法。:) 问题答案: 你要 这里的顺序很重要。假设stdin(fd 0),stdout(fd 1)和stderr(fd 2)最初都连接到tty,因此 首先

  • 问题内容: 我有一系列相互配合的XSL 2.0样式表,即样式表A的输出提要B的提要C的提要。 最有效的方法是什么?改写的问题是:如何将一个转换的输出有效地路由到另一个转换。 这是我的第一次尝试: 如您所见,我正在使用DOM来进行转换之间的转换,尽管它很方便,但它并不是最佳的性能。 有没有简单的方法可以说,将SAXResult路由到SAXSource?StAX解决方案将是另一种选择。 我知道像XPr