Python 2.7 Kivy删除小部件

Python 2.7 Kivy删除小部件,python-2.7,widget,kivy,Python 2.7,Widget,Kivy,添加标签后,我很难删除带有标签的小部件 以下是相关的代码: logi= True if data == []: logn =Label(text= "Incorrect Username",color=(190,0,0,1), pos_hint={"right":1.035,"top":1.14}) self.add_widget(logn) logu =Label(text= "Inc

添加标签后,我很难删除带有标签的小部件 以下是相关的代码:

    logi= True
    if data == []:

        logn =Label(text= "Incorrect Username",color=(190,0,0,1),
                     pos_hint={"right":1.035,"top":1.14})
        self.add_widget(logn)

        logu =Label(text= "Incorrect Password",color=(190,0,0,1),
                pos_hint={"right":1.035,"top":1.04})
        self.add_widget(logu)

        logi= False

    if logi == True:

        textinput.text=''
        textinput2.text=''

        if 'logn' in locals() and 'logu' in locals() :
            self.remove_widget(logn)   
            self.remove_widget(logu)

一旦添加了小部件,我似乎无法删除它们,如果我删除了
if'logn'in locals()和'logu'in locals():
语句,我会得到一个错误“赋值前引用的局部变量”每次我在没有上述if语句的情况下测试此方法时,我都会确保已添加小部件

我假设您输入此方法两次(第一次数据=[]第二次数据=[…])。因此,您应该将变量放在手边(将它们放在实例self上)

请注意我添加的所有位置self

logi= True
if data == []:

    self.logn =Label(text= "Incorrect Username",color=(190,0,0,1),
                 pos_hint={"right":1.035,"top":1.14})
    self.add_widget(self.logn)

    self.logu =Label(text= "Incorrect Password",color=(190,0,0,1),
            pos_hint={"right":1.035,"top":1.04})
    self.add_widget(self.logu)

    logi= False

if logi == True:

    textinput.text=''
    textinput2.text=''

    if hasattr(self, 'logn'): #check that we put something here before...
        self.remove_widget(self.logn)   
        self.remove_widget(self.logu)