python - Python TKinter 将终端输出重定向到 GUI 窗口
问题描述
我是 python 新手,正在尝试创建一个程序,除其他外,该程序应该将终端输出打印到 Tkinter GUI。
例如 ping 命令或任何其他 shell 命令或变量 print 的输出。
我在网上搜索了解决方案,但没有找到任何简单的方法。
也许我遗漏了一些东西,或者还有其他方法可以在 python 中打印终端输出
提前致谢,
解决方案
您可以使用 subprocess 模块和 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()
推荐阅读
- node.js - 如何修复 node.js 错误,例如“gyp ERR!查找 VS,包括“使用 C++ 进行桌面开发”工作负载。” 当我启动 Nuxt.js 项目时
- python - 如何遍历文本文件、读取前 n 行并写入列表或数据框?
- javascript - 纯 JavaScript 淡出然后加载
- asp.net-mvc - ASP.NET Core MVC 中的 Web 应用程序
- python - 根据另一个列表中的值从元组列表中删除重复值
- java - 我应该使用 System.out 或 Log4j 来打印普通信息吗?
- c# - XML 反序列化 System.InvalidOperationException”
没想到 - javascript - 刷新后如何保持状态
- javascript - 如何在 Node.js/Jest 中模拟嵌套模块响应
- r - 如何在r中读取列表列表