我有一个包含多个函数的类,其中一个抛出异常,我想将焦点设置回它正在验证的条目小部件。主叫:
self.entryWidget.set_focus()
返回AttributeError:
'App' object has no attribute 'entryWidget'
如何在__init__
之外引用此小部件?
class App:
def __init__(self,master):
calcframe = Frame(master)
calcframe.pack()
self.vol = DoubleVar()
entryWidget = Entry(calcframe, textvariable=self.vol)
entryWidget.grid(row=1, column=1, sticky=W)
entryWidget.focus()
def updateSIP(self):
try:
volume = self.vol.get()
except:
self.entryWidget.set_focus()
root = Tk()
root.wm_title('title')
app = App(root)
root.mainloop()
答案 0 :(得分:2)
问题是您没有entryWidget
App
属性。
要执行此操作,请在其前面放置self.
:
def __init__(self,master):
calcframe = Frame(master)
calcframe.pack()
self.vol = DoubleVar()
self.entryWidget = Entry(calcframe, textvariable=self.vol)
self.entryWidget.grid(row=1, column=1, sticky=W)
self.entryWidget.focus()
现在,entryWidget
是App
的属性,可以通过self
访问。