如何将焦点设置为函数的条目小部件

时间:2013-12-26 22:38:58

标签: python tkinter

我有一个包含多个函数的类,其中一个抛出异常,我想将焦点设置回它正在验证的条目小部件。主叫:

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

1 个答案:

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

现在,entryWidgetApp的属性,可以通过self访问。