2010-03-10 6 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() 

J'ai écrit ce programme de manière à créer une boîte pour saisir du texte et un bouton, mais cela ne montre rien à part une fenêtre. Où est l'erreur?Erreur dans la programmation gui en python en utilisant tkinter

Répondre

4

Le problème principal était que vous avez oublié d'appeler app.initialize(), mais vous avez également eu quelques fautes de frappe. J'ai indiqué où dans les commentaires dans cette version corrigée.

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()