我想在Python / Tkinter中创建一个简单,可重用的文本输出窗口类,其功能与控制台输出一样,但窗口更好。
到目前为止,我设法直接从构造函数中将文本写入ScrolledText
小部件,但这不是我想要的。
我想创建一个print
或println
方法,让我可以随时添加主程序中的文本。
我该怎么称呼' print方法中的文本小部件?
我的主要程序:
from gui.simpleio import Textwindow
a = Textwindow("This is my Textwindow !")
a.print("I'd like to see a hello from the print method")
a.stxt.INSERT("but nothing happens")
gui 包中的 我的 Textwindow 类( simpleio.py ):
from tkinter import Tk, Frame, INSERT
from tkinter import scrolledtext
class Textwindow(Frame):
def __init__(self , title):
root = Tk()
stxt = scrolledtext.ScrolledText(root)
stxt.pack()
root.wm_title(title)
stxt.insert(INSERT,"blah\nblabla\n")
stxt.insert(INSERT,"yes\nno")
root.mainloop()
def print(self,text):
#self.stxt.insert(INSERT,text)
pass
答案 0 :(得分:0)
为TextWindow提供一个write方法,实例a
成为一个可以写入的文件。这是Lib / idlelib / OutputWindow的OutputWindow.write的简化版本。
# Act as output file
def write(self, s):
self.text.insert('insert', s)
self.text.see('insert')
self.text.update()
return len(s)
添加后,print('Hello in TextWindow', file=a)
应该在3.x或2.7中使用print_function将来导入。