在GUI(Tkinter)窗口中没有任何东西出现

问题描述:

我正在为使用tkinter的登录系统编写代码,并且由于某种原因,当我运行代码时没有错误消息,并且弹出一个窗口但没有标题,按钮或我需要的标签。在GUI(Tkinter)窗口中没有任何东西出现

from tkinter import * 
import tkinter.messagebox 

frame = Tk() 

def adminlogincheck(self, master): 
    frame = Frame(master) 
    frame.pack() 
    if username == '123key' and password == 'key123': 
     accept = Label(frame, text='Login Successful') 
    else: 
     decline = Label(frame, text='Login incorrect') 
    mainloop() 

def adminselect(self, master): 
    frame = Frame(master) 
    frame.pack() 
    self.button = Button(frame, text="Cancel", fg="red", command=quit) 
    self.button.pack(side=LEFT) 
    self.slogan = Button(frame, text="Proceed", command=self.adminlogin) 
    self.slogan.pack(side=LEFT) 
    mainloop() 

def adminlogin(self, master): 
    frame = Frame(master) 
    frame.pack() 
    username_entry = Entry(frame) 
    password_entry = Entrey(frame) 
    confirm = Button(frame, text='Login', command = adminlogincheck) 
    loginquit = Button(frame, text='Cancel', command=quit) 
    mainloop() 

我会在登录系统后的作品添加更多,但没有人知道为什么没有按钮或标签?

+0

你应该只有一个主脚本每个脚本。由于mainloop是阻止脚本继续读取的阻止调用。删除所有主循环并在脚本末尾添加一个 – abccd

+0

并且必须打包每个窗口小部件(标签,条目,框架等)才能显示。第一个和最后一个功能都有条目,标签和未打包的按钮。 –

+0

@RonNorris我已经把这些包放在了不同的地方,但同样的问题发生了。有没有特别需要它的地方? – Jack

您的请求中有足够的内容可以查看您要完成的内容,但代码存在许多问题。这里是你看起来正在努力的一个工作模型...

from tkinter import * 
import tkinter.messagebox 


class Admin: 

    def __init__(self, master): 
     self.frame = Frame(master) 
     self.frame.pack() 
     self.username = StringVar() 
     self.password = StringVar() 

    def logincheck(self): 
     self.clearframe() 
     if self.username.get() == '123key' and self.password.get() == 'key123': 
      accept = Label(self.frame, text='Login Successful') 
      accept.pack(side=LEFT) 
     else: 
      decline = Label(self.frame, text='Login incorrect') 
      decline.pack(side=LEFT) 

    def select(self): 
     self.clearframe() 
     self.button = Button(self.frame, text="Cancel", fg="red", command=quit) 
     self.button.pack(side=LEFT) 
     self.slogan = Button(self.frame, text="Proceed", command=self.adminlogin) 
     self.slogan.pack(side=LEFT) 

    def login(self): 
     self.clearframe() 
     username_entry = Entry(self.frame, textvariable=self.username) 
     username_entry.pack() 
     password_entry = Entry(self.frame, textvariable=self.password) 
     password_entry.pack() 
     confirm = Button(self.frame, text='Login', command = self.logincheck) 
     confirm.pack() 
     loginquit = Button(self.frame, text='Cancel', command=quit) 
     loginquit.pack() 

    def clearframe(self): 
     # Destroy all children of the class's frame. 
     for child in self.frame.winfo_children(): 
      child.destroy() 

root = Tk() 
admin = Admin(root) 
admin.login() 
mainloop()