¿Cómo enviar un valor desde una etiqueta de loop en tkinter y destruir todo el frame?
Estoy creando un bucle dinámico para crear un botón y espero poder crear un marco que incluya el botón de eliminación y la etiqueta, cuando hago clic en el botón de eliminación puede indicarme el texto de la etiqueta y además eliminar todo el marco.
def deleteEvent(num):
print(num)
for inx, num in enumerate (evid):
print(num)
f = tk.Frame(window)
#eventVar = tk.IntVar(f,value=evid[num])
#eventVar.set(str(evid[x]))
e1=tk.Label(f, text='contenido del evento: '+cal.calevent_cget(num,option='text'))
e1.pack(side='top')
e2=tk.Label(f, text=num)
e2.pack(side='top')
#place(anchor="nw", x=0, y=0, width=0, height=0)
#tk.Button(f, text='eliminar', command=lambda text=num: deleteEvent(text)).pack(side='top')
e3=tk.Button(f, text='eliminar', command=lambda:[ (lambda num=num: deleteEvent(num)),f.destroy] )
e3.pack(side='top')
#delete_button=tk.Button(window, text='eliminar', command=deleteEvent).pack()
#modify_button=tk.Button(window, text='modificar', command=modifyEvent).pack()
f.pack()
print('fin')
#f.pack()
La terminal devuelve un error que
Traceback (most recent call last):
File “C:\Users\CloudMosa\Anaconda3\lib\tkinter__init__.py”, line 1705, in call
return self.func(*args)
File “c:\Users\CloudMosa\Desktop\calander.py”, line 52, in
e3=tk.Button(f, text=’eliminar’, command=lambda:[ (lambda num=num: deleteEvent(num)),f.destory] )
AttributeError: el objeto ‘Frame’ no tiene ningún atributo ‘destory’
davy.ai
Parece que estás intentando crear un bucle dinámico para crear un botón y un marco que incluya el botón de eliminación y la etiqueta. Al hacer clic en el botón de eliminación, debería decirte el texto de la etiqueta y eliminar todo el marco. Sin embargo, parece que estás obteniendo un
AttributeError
cuando intentas ejecutar el código.Parece que el problema está en la línea
f.destory
. Debería serf.destroy()
con los paréntesis.Intenta cambiar esa línea por
f.destroy()
y observa si eso resuelve el problema.