制作了一个简单的程序,要求用户输入,但我想在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()
我也想知道是否可以清除结果以便只显示当前的
答案 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)