首先对不起,如果标题不是最好解释我的问题。 我正在尝试进行某种登录,您点击“新帐户”按钮,然后消失在 init 方法上创建的登录按钮,并显示来自createaccount方法的内容。
我这样做了。我尝试做grid_forget()pack_forget(),但我还没能做到。 我正在使用python 3。 感谢
from tkinter import *
class Login:
def __init__(self, ventana):
ventana.title("Login - Python")
ventana.geometry("800x600")
Label(ventana, text="name: ").grid(column=0, row=0)
Label(ventana, text="Password: ").grid(column=0, row=1)
Button(ventana, text="Login").grid(column=0, row=2)
Button(ventana, text="Create Account", command=self.createaccount).grid(column=0, row=3)
Button(ventana, text="Exit").grid(column=0, row=4)
def createaccount(self):
print("createaccount method executed")
Label(ventana, text="Name: ").grid(column=2, row=0)
Label(ventana, text="Password: ").grid(column=2, row=1)
Label(ventana, text="Repeat Password: ").grid(column=2, row=2)
Label(ventana, text="Email: ").grid(column=2, row=3)
Label(ventana, text="Repeat E-mail: ").grid(column=2, row=4)
ventana = Tk()
objeto=Login(ventana)
ventana.mainloop()
答案 0 :(得分:0)
如果您希望稍后在程序中使用小部件,则需要将它们存储在变量中。
def __init__(self, ventana):
ventana.title("Login - Python")
ventana.geometry("800x600")
self.lblName = Label(ventana, text="name: ")
self.lblPass = Label(ventana, text="Password: ")
.....
.....
self.lblName.grid(column=0, row=0)
self.lblPass.grid(column=0, row=1)
.....
.....
现在,您可以在代码中的任何位置使用这些小部件。
def createaccount(self):
self.lblName.grid_forget()
self.lblPass.grid_forget()
#and so on...
请注意,创建窗口小部件并使用grid
放置它们是分开的。