【问题标题】:replacing a menu for new one from another method on tkinter在 tkinter 上用另一种方法替换新菜单
【发布时间】:2017-06-06 15:01:47
【问题描述】:

如果标题不能最好地解释我的问题,请先抱歉。 我正在尝试进行一种登录,您单击“新帐户”按钮,然后消失在 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()

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

    如果您想稍后在程序中使用您的小部件,您需要将它们存储在一个变量中。

    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 放置它们是分开的。

    【讨论】:

    • 附注我认为这个问题不是因为 NoneType 错误,因为这首先缺少变量使用。因此我回答了它。如果您认为问题是骗人的,请随时联系我,以便我删除此答案。
    猜你喜欢
    • 2016-02-15
    • 1970-01-01
    • 2017-02-26
    • 2012-05-13
    • 2012-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多