0

I am using tkinter and Python 3.8.5. I have the following two entry boxes that I would like to clear.

ketones_entry = Entry(screen, textvariable = key).place(x=120, y=75) 
glucose_entry = Entry(screen, textvariable = glu).place(x=120, y=120)

This is what I used to try and clear

ketones_entry.delete(0,END)
glucose_entry.delete(0,END)

I receive this error

ketones_entry.delete(0,END)
AttributeError: 'NoneType' object has no attribute 'delete'
swingline
  • 11
  • 2
  • 1
    place returns `None` so first instantiate then use the `place` method `ketones_entry = Entry(screen, textvariable = key)` then `ketones_entry .place()` – JacksonPro Jan 22 '21 at 14:26

1 Answers1

0
ketones_entry = Entry(screen, textvariable = key).place(x=120, y=75)

You are creating an Entry object and then calling its place method. But place returns None, so ketones_entry is not an Entry object anymore but None instead. These 2 lines should be like this:

ketones_entry = Entry(screen, textvariable = key)
ketones_entry.place(x=120, y=75) 
glucose_entry = Entry(screen, textvariable = glu)
glucose_entry.place(x=120, y=120)

If you need to call many methods of an object, you can use object notation :

ketones_entry = (
    Entry(screen, textvariable=key)
    .place(x=120, y=75)
    .method2()
    .method3()
)
    ...
TheEagle
  • 5,808
  • 3
  • 11
  • 39