es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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’

Tags:  ,

Answer

  1. Avatar for 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 ser f.destroy() con los paréntesis.

    Intenta cambiar esa línea por f.destroy() y observa si eso resuelve el problema.

Comments are closed.