Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 似乎无法创建与我的菜单功能相关的新标签:/n是否有更好的方法来构造我的代码或修复? 从tkinter导入* 班级员工: “”“创建员工”“” def uuu init uuuu(自我、名字、姓氏): self.forename=名字 self.姓氏=姓氏 self.username=名字[0]+'.+姓氏 self.employeeID=1 def员工用户名(自我): “”“使用employee类的名字和姓氏生成用户名”“” 返回“{}”。格式(self.username) root=Tk() 类GUI(框架): 定义初始(自我,主): 超级()。 self.frame=帧(主) self.lu=标签(self,text=“Username:”,fg=“black”,bg=“white”,font=(“Courier”,13)) self.lp=标签(self,text=“Password:”,fg=“black”,bg=“white”,font=(“Courier”,13)) self.eu=条目(self) self.ep=条目(self,show=“*”) self.lu.grid(行=0,粘滞=E) self.lp.grid(行=1,粘性=E) self.eu.grid(行=0,列=1) self.ep.grid(行=1,列=1) self.log=按钮(self,text=“Login”,command=self.Login) self.log.grid(columnspan=2) self.pack() def菜单(自我): 打印(“Y”) self.ml=标签(self,text=“Option Menu”,fg=“black”,bg=“white”,font=(“Courier”,13)) 自包装(侧面=顶部,填充=X) def登录(自我): ''登录页面'' uname=self.eu.get() pword=self.ep.get() 如果len(uname)_Python_Class_User Interface_Tkinter_Label - Fatal编程技术网

Python 似乎无法创建与我的菜单功能相关的新标签:/n是否有更好的方法来构造我的代码或修复? 从tkinter导入* 班级员工: “”“创建员工”“” def uuu init uuuu(自我、名字、姓氏): self.forename=名字 self.姓氏=姓氏 self.username=名字[0]+'.+姓氏 self.employeeID=1 def员工用户名(自我): “”“使用employee类的名字和姓氏生成用户名”“” 返回“{}”。格式(self.username) root=Tk() 类GUI(框架): 定义初始(自我,主): 超级()。 self.frame=帧(主) self.lu=标签(self,text=“Username:”,fg=“black”,bg=“white”,font=(“Courier”,13)) self.lp=标签(self,text=“Password:”,fg=“black”,bg=“white”,font=(“Courier”,13)) self.eu=条目(self) self.ep=条目(self,show=“*”) self.lu.grid(行=0,粘滞=E) self.lp.grid(行=1,粘性=E) self.eu.grid(行=0,列=1) self.ep.grid(行=1,列=1) self.log=按钮(self,text=“Login”,command=self.Login) self.log.grid(columnspan=2) self.pack() def菜单(自我): 打印(“Y”) self.ml=标签(self,text=“Option Menu”,fg=“black”,bg=“white”,font=(“Courier”,13)) 自包装(侧面=顶部,填充=X) def登录(自我): ''登录页面'' uname=self.eu.get() pword=self.ep.get() 如果len(uname)

Python 似乎无法创建与我的菜单功能相关的新标签:/n是否有更好的方法来构造我的代码或修复? 从tkinter导入* 班级员工: “”“创建员工”“” def uuu init uuuu(自我、名字、姓氏): self.forename=名字 self.姓氏=姓氏 self.username=名字[0]+'.+姓氏 self.employeeID=1 def员工用户名(自我): “”“使用employee类的名字和姓氏生成用户名”“” 返回“{}”。格式(self.username) root=Tk() 类GUI(框架): 定义初始(自我,主): 超级()。 self.frame=帧(主) self.lu=标签(self,text=“Username:”,fg=“black”,bg=“white”,font=(“Courier”,13)) self.lp=标签(self,text=“Password:”,fg=“black”,bg=“white”,font=(“Courier”,13)) self.eu=条目(self) self.ep=条目(self,show=“*”) self.lu.grid(行=0,粘滞=E) self.lp.grid(行=1,粘性=E) self.eu.grid(行=0,列=1) self.ep.grid(行=1,列=1) self.log=按钮(self,text=“Login”,command=self.Login) self.log.grid(columnspan=2) self.pack() def菜单(自我): 打印(“Y”) self.ml=标签(self,text=“Option Menu”,fg=“black”,bg=“white”,font=(“Courier”,13)) 自包装(侧面=顶部,填充=X) def登录(自我): ''登录页面'' uname=self.eu.get() pword=self.ep.get() 如果len(uname),python,class,user-interface,tkinter,label,Python,Class,User Interface,Tkinter,Label,您的代码中有很多错误 如果您破坏根窗口,您还将破坏所有其他小部件。 因此,您不能再使用self.menu方法 您使用的是不同的几何体管理器,如果只使用一个,效果会更好 您在self.menu方法中打包了错误的小部件。它应该是self.ml.pack()而不是self.pack() Gui构造函数在不传递self的情况下使用super() from tkinter import * class Employee: """Create an employee""" def __in

您的代码中有很多错误

如果您破坏根窗口,您还将破坏所有其他小部件。 因此,您不能再使用self.menu方法

您使用的是不同的几何体管理器,如果只使用一个,效果会更好

您在self.menu方法中打包了错误的小部件。它应该是self.ml.pack()而不是self.pack()

Gui构造函数在不传递self的情况下使用super()

from tkinter import *

class Employee:
    """Create an employee"""
    def __init__(self, forename, surname):
        self.forename = forename
        self.surname = surname
        self.username = forename[0] + '.' + surname
        self.employeeID = 1
    def employeeUsername(self):
        """Generates a username using the forename and surname of the employee class"""
        return "{}".format(self.username)

root = Tk()

class GUI(Frame):

    def __init__(self,master):
        super().__init__(master) # confused.

        self.frame = Frame(master)

        self.lu = Label(self,text = "Username: ",fg ="black",bg="white",font=("Courier",13))
        self.lp = Label(self,text = "Password: ",fg ="black",bg="white",font=("Courier",13))

        self.eu = Entry(self)
        self.ep = Entry(self, show="*")

        self.lu.grid(row = 0, sticky = E)
        self.lp.grid(row = 1, sticky = E)
        self.eu.grid(row = 0, column = 1)
        self.ep.grid(row = 1,  column = 1)

        self.log = Button(self,text="Login", command=self.login)
        self.log.grid(columnspan = 2)

        self.pack()

    def menu(self):
        print("Y")

        self.ml = Label(self, text = "Option Menu", fg = "black", bg = "white", font = ("Courier",13))

        self.pack(side = TOP , fill = X)

    def login(self):
        '''Login page'''
        uname = self.eu.get()
        pword = self.ep.get()
        if len(uname) < 5 or len(pword) == 0:
            self.error = Label(self,text="Incorrect Password",fg ="black",bg="white",font=("Courier",10))
            self.error.grid(row = 3 ,column = 1)

        else:
            root.destroy()
            self.menu()

            print("X")



main = GUI(root)
root.mainloop()

您的问题需要更多解释当我运行代码时,我收到一个错误,说我无法创建标签,应用程序已被销毁您的问题并显示一个完整的回溯,您无法创建新标签,因为您破坏了根窗口。为什么您认为应该使用
root.destroy()
?我计划使用root.destory来破坏登录窗口,然后为菜单打开一个新窗口,这似乎有点逻辑问题
from tkinter import *

class Employee:
    """Create an employee"""
    def __init__(self, forename, surname):
        self.forename = forename
        self.surname = surname
        self.username = forename[0] + '.' + surname
        self.employeeID = 1
    def employeeUsername(self):
        """Generates a username using the forename and surname of the employee class"""
        return "{}".format(self.username)

class GUI(Frame):

    def __init__(self,master):
        self.master = master
        Frame.__init__(self, self.master) #still confused?
        self.pack()    
        #self.frame = Frame(master)  it's pointless variable
        self.lu = Label(self,text = "Username: ",fg ="black",bg="white",font=("Courier",13))
        self.lp = Label(self,text = "Password: ",fg ="black",bg="white",font=("Courier",13))
        self.eu = Entry(self)
        self.ep = Entry(self, show="*")
        self.lu.grid(row = 0, sticky = E)
        self.lp.grid(row = 1, sticky = E)
        self.eu.grid(row = 0, column = 1)
        self.ep.grid(row = 1,  column = 1)
        self.log = Button(self,text="Login", command=self.login)
        self.log.grid(columnspan = 2)

    def menu(self):
        print("Y")
        self.my_label = Label(self.master, text="Option Menu", fg="black", bg="white") #font=("Courier",13)
        self.my_label.pack(side = TOP , fill = X)

    def login(self):
        '''Login page'''
        uname = self.eu.get()
        pword = self.ep.get()
        if len(uname) < 5 or len(pword) == 0:
            self.error = Label(self,text="Incorrect Password",fg ="black",bg="white",font=("Courier",10))
            self.error.grid(row = 3 ,column = 1)
        else:
            #root.destroy()
            self.menu()
            #or use self.menu2() for creating toplevel window
            print("X")

if __name__ == "__main__":
    root = Tk()
    main = GUI(root)
    root.mainloop()
    def menu2(self):
        self.my_toplevel = Toplevel(self.master)
        self.my_label = Label(self.my_toplevel, text="Option Menu", fg="black", bg="white") #font=("Courier",13)
        self.my_label.pack(side = TOP , fill = X)