tkinter显示终端输出
时间: 2023-05-24 14:01:31 浏览: 58
可以使用以下代码将终端输出显示在tkinter窗口中:
```
import tkinter as tk
import sys
root = tk.Tk()
text = tk.Text(root)
text.pack()
class StdRedirector():
def __init__(self,widget):
self.widget = widget
def write(self,string):
self.widget.insert("end", string)
sys.stdout = StdRedirector(text)
root.mainloop()
```
这段代码会创建一个带有文本框的tkinter窗口,将所有的终端输出重定向到这个文本框中。
相关问题
python使用tkinter,界面显示print的内容
可以使用Tkinter中的Text控件来显示Python的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()
text_widget = tk.Text(root)
text_widget.pack()
sys.stdout = StdoutRedirector(text_widget)
print('Hello, World!')
```
在上面的代码中,我们创建了一个StdoutRedirector类,将Python的标准输出重定向到Tkinter的Text控件中。然后我们创建了一个Tkinter窗口和一个Text控件,并将标准输出重定向到Text控件中。最后,我们使用print语句输出了一条消息,该消息将显示在Text控件中。
注意:在标准输出被重定向后,print输出的内容将不再显示在终端中,而是显示在Tkinter的Text控件中。如果想要同时在终端和Tkinter中输出内容,可以使用Python的logging模块来实现。
python使用tkinter,界面一定范围内显示print的内容
可以使用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模块来实现。