0

I'm trying to access an item in Canvas in tkinter, like I can in a Frame using grid_slaves()

Let's say for example I want to access a subwidget:

subwidget = Frame.grid_slaves(row=0, column=0)[0]

I can't use grid_slaves() on a Canvas, and I was wondering what the equivalent would be for something like:

object = Canvas.grid_slaves(row=0, column=0)[0]
Sylvester Kruin
  • 3,294
  • 5
  • 16
  • 39
Jsmnbx
  • 1

1 Answers1

0

You can use the canvas method find_all along with the canvas methods type and itemcget to get the information you need.

for item in canvas.find_all():
    if canvas.type(i) == "window":
        print(f"item id: {item} widget: {canvas.itemcget(item, 'window')}")

If you give all of the items you want to find a unique tag, you can use find_withtag to return only the items with that tag.

Bryan Oakley
  • 370,779
  • 53
  • 539
  • 685