Python 无法删除Tkinter小部件(由for循环创建)
我已经创建了各种带有for循环的Tkinter小部件。除了“lock_btn”小部件之外,它们都可以很好地删除。当我按下该按钮时,锁定按钮保持在页面上(尽管函数中的其余代码可以工作)。我尝试过使用和不使用全局变量(您看到的代码包括全局变量)Python 无法删除Tkinter小部件(由for循环创建),python,for-loop,tkinter,widget,Python,For Loop,Tkinter,Widget,我已经创建了各种带有for循环的Tkinter小部件。除了“lock_btn”小部件之外,它们都可以很好地删除。当我按下该按钮时,锁定按钮保持在页面上(尽管函数中的其余代码可以工作)。我尝试过使用和不使用全局变量(您看到的代码包括全局变量) 首先调用lock\u btn.pack(0),然后切换到使用place(…)。因此,小部件由位置管理,因为它只能由一个几何体管理器管理。当您调用pack\u忘记时,它没有任何效果,因为pack不在小部件的控制之下。谢谢那个人!你知道我将如何解决这个问题,并且
首先调用
lock\u btn.pack(0)
,然后切换到使用place(…)
。因此,小部件由位置管理,因为它只能由一个几何体管理器管理。当您调用pack\u忘记时,它没有任何效果,因为pack
不在小部件的控制之下。谢谢那个人!你知道我将如何解决这个问题,并且仍然能够放置小部件吗?没关系,我用你最初的评论解决了这个问题。谢谢
import tkinter
import tkinter.messagebox
#Setting properties for the window
window = tkinter.Tk()
window.title("Shutdown Timer")
window.geometry("250x300")
window.configure(background="black")
def Login():
for x in range(0,5):
login_window[x].pack_forget()
def Auth():
if usr.get() == "isensedemons":
if pas.get() == password:
Login()
else:
tkinter.messagebox.showinfo("Login Error", "Incorrect Username or Password")
else:
tkinter.messagebox.showinfo("Login Error", "Incorrect Username or Password")
def Lock():
global lock_btn
for x in range(0,1):
lock_btn.pack_forget()
for x in range(0,5):
login_window[x].pack()
lock_btn = tkinter.Button(window, text="Lock", fg="white", bg="black", command=Lock)
lbl_usr = tkinter.Label(window, text="Username", fg="white", bg="black")
usr = tkinter.Entry(window)
lbl_pas = tkinter.Label(window, text="Password", fg="white", bg="black")
pas = tkinter.Entry(window, show="•")
btn = tkinter.Button(window, text="Authenticate", fg="white", bg="black", command=Auth)
password = "password"
login_window = [lbl_usr,usr,lbl_pas,pas,btn]
class Create():
lock_btn.pack()
lock_btn.place(rely=1, relx=1, anchor="se")
Create()
#Starts the Program
window.mainloop()