python使用tkinter,界面一定范围内显示print的内容
时间: 2024-02-15 12:04:54 浏览: 134
Python GUI编程学习笔记之tkinter界面布局显示详解
可以使用Tkinter中的Scrollbar控件来实现在界面一定范围内显示print的内容。以下是一个简单的示例代码:
```python
import tkinter as tk
import sys
class StdoutRedirector(object):
def __init__(self, text_widget):
self.text_widget = text_widget
def write(self, string):
self.text_widget.insert(tk.END, string)
self.text_widget.see(tk.END)
root = tk.Tk()
root.geometry('400x400')
text_widget = tk.Text(root)
text_widget.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
scrollbar = tk.Scrollbar(root, command=text_widget.yview)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
text_widget.config(yscrollcommand=scrollbar.set)
sys.stdout = StdoutRedirector(text_widget)
for i in range(1000):
print('This is line %d' % i)
```
在上面的代码中,我们创建了一个StdoutRedirector类,将Python的标准输出重定向到Tkinter的Text控件中。然后我们创建了一个Tkinter窗口和一个Text控件,并将其放置在窗口的左侧。我们还创建了一个Scrollbar控件并将其放置在窗口的右侧,并将其与Text控件关联起来。最后,我们使用一个循环输出了1000行文本,该文本将显示在Text控件中,并且可以通过Scrollbar控件滚动查看。
注意:在标准输出被重定向后,print输出的内容将不再显示在终端中,而是显示在Tkinter的Text控件中。如果想要同时在终端和Tkinter中输出内容,可以使用Python的logging模块来实现。
阅读全文