用Tkinter打印出来的东西

时间:2016-04-15 17:32:23

标签: python user-interface tkinter

制作了一个简单的程序,要求用户输入,但我想在gui本身打印出来,而不是在shell中的命令行打印

import Tkinter 

class simpleapp_tk(Tkinter.Tk):
    def __init__(self,parent):
        Tkinter.Tk.__init__(self,parent)
        self.parent = parent
        self.initialize()





    def initialize(self):
        self.grid()

        self.entry = Tkinter.Entry(self)
        self.entry.grid(column=0,row=1,sticky='EW')

        button = Tkinter.Button(self,text="Click me !", command = self.on_button)
        button.grid(column=1,row=1)

        label = Tkinter.Label(self,
                              text = "ns lookup")
        label.grid(column=0,row=0,columnspan=2,sticky='EW')


    def on_button(self):
        ns = (self.entry.get())
        print(ns)







if __name__ == "__main__":
    app = simpleapp_tk(None)
    app.title('my application')
    app.mainloop()

我也想知道是否可以清除结果以便只显示当前的

2 个答案:

答案 0 :(得分:0)

您可以传递标签,然后更改标签文字。或者,如果您不希望更改此标签,请更换新标签。您可以使用画布,使用create_text,如果您要查看大量文本,可以使用文本小部件/滚动文本插入文本,以及在Tk中“打印”值的各种其他方法

def initialize(self):

      self.grid()

      self.entry = Tkinter.Entry(self)
      self.entry.grid(column=0,row=1,sticky='EW')

      label = Tkinter.Label(self, text = "ns lookup")
      button = Tkinter.Button(self,text="Click me !", command = lambda: self.on_button(label))

      label.grid(column=0,row=0,columnspan=2,sticky='EW')
      button.grid(column=1,row=1)



def on_button(self, label):

    ns = self.entry.get()
    label['text'] = ns

或者您可以将标签作为该类的属性并调用self.label或其他众多可用选项。

答案 1 :(得分:0)

只需保存对标签的引用,然后使用configure消息进行更改:

class simpleapp_tk(Tkinter.Tk):
    ...
    def initialize(self):
        ...
        self.label = Tkinter.Label(self, text = "ns lookup")
        ...


    def on_button(self):
        ns = (self.entry.get())
        self.label.configure(text="you entered: '%s'" % ns)