2010-03-10 41 views
2
#!/usr/bin/python 
# -*- coding: iso-8859-1 -*- 

import Tkinter 

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

     self.entry=Tkinter.Entry(self) 
     self.entry.grid(column=0,row=0,sticky='EW') 
     self.entry.bind("<Return>",self.OnPressEnter) 

     button=Tkinter.Button(self,test="Post it!",command=self.OnButtonClick) 
     button.grid(column=1,row=0) 

     label=Tkinter.Label(self,anchor="w",fg="white",bg="blue") 
     label=grid(column=0,row=1,columnspan=2,sticky='EW') 

     self.grid_columnconfigure(0,weight=1) 

    def OnButtonClick(self): 
     print "you clicked the button!" 

    def OnPressEnter(self,event): 
     print "you pressed enter!" 

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

我编写了这个程序,以便创建一个框来输入文本和按钮,但它除了窗口外没有任何显示。错误在哪里?在使用tkinter的python编程中的错误

回答

4

主要问题是你忘记打电话给app.initialize(),但你也有几个错别字。我已经指出了这个固定版本中的评论。

import Tkinter 

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

     self.entry=Tkinter.Entry(self) 
     self.entry.grid(column=0,row=0,sticky='EW') 
     self.entry.bind("<Return>",self.OnPressEnter) 

     button=Tkinter.Button(self,text="Post it!",command=self.OnButtonClick) 
     # the text keyword argument was mis-typed as 'test' 

     button.grid(column=1,row=0) 

     label=Tkinter.Label(self,anchor="w",fg="white",bg="blue") 
     label.grid(column=0,row=1,columnspan=2,sticky='EW') 
     # the . in label.grid was mis-typed as '=' 

     self.grid_columnconfigure(0,weight=1) 

    def OnButtonClick(self): 
     print "you clicked the button!" 

    def OnPressEnter(self,event): 
     print "you pressed enter!" 

if __name__=="__main__": 
    app=simpleapp_tk(None) 
    app.title('poster') 
    app.initialize() # you forgot this 
    app.mainloop()