我用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为
点击登录后,它将变为
单击注销GUI后恢复到初始GUI
现在登录按钮不再有效。
如何解决此错误?
答案 0 :(得分:0)
您的命名是问题所在。尝试重命名方法,小部件名称相同。当你写self.login
& self.logout
都可以是类方法或按钮。只需确保通过提供不同的名称来指定哪个。