python tkinter 重定向输出print到文本框
时间: 2023-06-23 20:46:10 浏览: 308
python 标准输出重定向
可以使用Tkinter中的Text组件来实现将print输出重定向到文本框。具体步骤如下:
1. 创建一个Tkinter窗口和一个Text组件用于显示print输出。
```
import tkinter as tk
root = tk.Tk()
text = tk.Text(root)
text.pack()
```
2. 定义一个函数,用于将print输出重定向到Text组件中。
```
import sys
def print_to_text(*args, **kwargs):
print(*args, **kwargs)
text.insert(tk.END, *args, **kwargs)
text.see(tk.END)
```
该函数会先将print输出到控制台,然后将输出内容插入到Text组件中,并将滚动条滚动到底部。
3. 重定向print输出到函数print_to_text。
```
sys.stdout.write = print_to_text
```
这样,以后所有的print输出都会被重定向到Text组件中。
完整代码示例如下:
```
import tkinter as tk
import sys
root = tk.Tk()
text = tk.Text(root)
text.pack()
def print_to_text(*args, **kwargs):
print(*args, **kwargs)
text.insert(tk.END, *args, **kwargs)
text.see(tk.END)
sys.stdout.write = print_to_text
print("Hello, World!")
```
运行后,可以看到print输出的内容已经被重定向到了Text组件中。
阅读全文