2013-06-29 65 views
0

这是我的代码以及错误消息。在Python中获取属性错误

from Tkinter import * 

class Window01 (Frame): 


def __init__(self, master): 
Frame.__init__(self) 
self.reveal() 
self.create_widget() 
self.grid() 


def create_widget(self): 

self.lbl = Label (self, text = "This is a Widget App.") 
self.lbl.grid(row =1, column =0, columnspan =2, sticky = W) 

self.entbx = Entry(self) 
self.entbx.grid(row = 1, column = 1, sticky = W) 

self.bttn = Button (self, text = "Widget Button", command = self.reveal) 
self.bttn.grid(row = 2, column = 0, sticky = W) 

self.txt = Text (self, width =35, height = 5, wrap = WORD) 
self.txt.grid(row = 3, column = 0, columnspan =2, sticky = W) 

def reveal (self): 
contents = self.entbx.get() 

if contents =="magic": 
message = "Access Granted" 

else: 
message = "Denied" 
self.txt.delete(0.0, END) 
elf.txt.insert(0.0, message) 


root = Tk() 
root.title ("Widget_Button") 
root.geometry ("300x150") 
app = Window01 (root) 
root.mainloop() 

文件 “C:\的PyDev \ Py_Widgets101 \ SRC \ Py_Widget03.py”,第10行,在INIT self.reveal() 文件“C:\的PyDev \ Py_Widgets101 \ SRC \ Py_Widget03。 PY”,第30行,在揭示内容 = self.entbx.get() AttributeError的:Window01实例没有属性 'entbx'

+0

修复缩进的问题。 –

回答

1

self.entbxcreate_widget()创建。你调用reveal() - 这需要self.entbx - 你叫create_widget()前:

self.reveal() 
self.create_widget()