Python TKinter将终端输出重定向到GUI窗口

时间:2018-10-16 20:46:15

标签: python python-3.x shell tkinter

我是python的新手,正在尝试创建一个程序,该程序除其他外应将终端输出打印到Tkinter GUI。

例如ping命令或任何其他shell命令或变量print的输出。

我已经在网上搜索了解决方案,但没有找到任何简单的方法。

也许我丢失了某些东西,或者还有其他方法可以在python中打印终端输出

预先感谢

1 个答案:

答案 0 :(得分:0)

您可以使用子流程模块和Canvas小部件将Shell命令的结果打印到屏幕上

from tkinter import *
import subprocess


root = Tk()
frame = Frame(root,width=1024, height=768)
frame.grid(row=0, column=0)
c = Canvas(frame, bg='blue', width=800, height=600)
c.config(scrollregion=(0, 0, 800, 3000))
sbar = Scrollbar(frame)
sbar.config(command=c.yview)
c.config(yscrollcommand=sbar.set)
sbar.pack(side=RIGHT, fill=Y)
c.pack(side=LEFT, expand=True, fill=BOTH)

String1 = subprocess.check_output('chcp 437 && ping /?', shell=True)
c.create_text(400, 0, anchor=N, fill='orange', font='Times 15', text=String1)
# c.create_text(750, 300, anchor=W, fill='orange', font='Times 28', text='List')

button = Button(root, text="Quit", command=root.destroy)
c.create_window(400, 0, anchor=N, window=button)

mainloop()