在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()
我会在登录系统后的作品添加更多,但没有人知道为什么没有按钮或标签?
答
您的请求中有足够的内容可以查看您要完成的内容,但代码存在许多问题。这里是你看起来正在努力的一个工作模型...
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()
你应该只有一个主脚本每个脚本。由于mainloop是阻止脚本继续读取的阻止调用。删除所有主循环并在脚本末尾添加一个 – abccd
并且必须打包每个窗口小部件(标签,条目,框架等)才能显示。第一个和最后一个功能都有条目,标签和未打包的按钮。 –
@RonNorris我已经把这些包放在了不同的地方,但同样的问题发生了。有没有特别需要它的地方? – Jack