2017-10-15 83 views
-1

我正在爲使用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

回答

0

您的請求中有足夠的內容可以查看您要完成的內容,但代碼存在許多問題。這裏是你看起來正在努力的一個工作模型...

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()