Python:在点击时删除按钮并在另一次点击中恢复?

时间:2015-01-24 09:44:53

标签: python user-interface tkinter

我用Tkinter写了一个gui程序。

 from Tkinter import *     

class Test(object):
    def __init__(self):
        self.root=Tk()
        self.root.resizable(0,0)
        self.lframe = Frame(self.root,width=300,height=200,bg="White",padx=0)
        self.lframe.pack()
        self.startG()
    def startG(self):    
        self.l1 = Label(self.lframe,text="Card Number",width=15,height=2);
        self.l1.grid(row=0,column=0,padx=10,pady=20)
        self.login = Button(self.lframe,text="Login", fg="black",height=2,width=20,command = self.login)
        self.login.grid(row=0,column=1,padx=10,pady=50)

    def login(self):
            self.l1.destroy()
            self.login.destroy()
            self.l2 = Label(self.lframe,text="User ID  : ",height=2)
            self.l2.grid(row=0,columnspan=2,pady=10,padx=10)
            self.logout = Button(self.lframe, text="Logout !", fg="black",height=2,width=15,command = self.logout)
            self.logout.grid(row=0,column=2,pady=10,padx=10); 
    def logout(self):
        self.l2.destroy()
        self.logout.destroy()
        self.startG()              

if __name__ == "__main__":
    t  = Test()
    mainloop() 

以上代码段显示初始gui为Final
点击登录后,它将变为
Initial
单击注销GUI后恢复到初始GUI Final
现在登录按钮不再有效。

如何解决此错误?

1 个答案:

答案 0 :(得分:0)

您的命名是问题所在。尝试重命名方法,小部件名称相同。当你写self.login& self.logout都可以是类方法或按钮。只需确保通过提供不同的名称来指定哪个。