2013-06-29 63 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()