Python / Tkinter:如何从方法中访问ScrolledText小部件?

时间:2015-11-08 01:14:28

标签: python user-interface oop methods tkinter

我想在Python / Tkinter中创建一个简单,可重用的文本输出窗口类,其功能与控制台输出一样,但窗口更好。

到目前为止,我设法直接从构造函数中将文本写入ScrolledText小部件,但这不是我想要的。

我想创建一个printprintln方法,让我可以随时添加主程序中的文本。

我该怎么称呼' 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

1 个答案:

答案 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将来导入。