我已成功将图像插入 tkinter 文本小部件,但如何使其可点击?

Edw*_*ard 1 python image tkinter tkinter-text

下面的代码可以将图像放入文本小部件,但我希望能够检测到它何时被单击,尽管最后一行代码不会生成任何错误,但它也不起作用。

my_image = ImageTk.PhotoImage(file = path)
tag = txtbox.image_create(txtbox.index('insert'), image = my_image)
txtbox.tag_bind(tag, "<Button-1>", on_image_click)
Run Code Online (Sandbox Code Playgroud)

Coo*_*oud 5

我浏览了文档,但找不到image_create直接关联标签的方法。但至少有两种方法可以实现这一目标:

  • 用于tag_add制作标签:

您可以使用tag_add将标签添加到图像的索引,然后将其与tag_bind

index = txtbox.index('insert')
txtbox.image_create(index, image=my_image)
txtbox.tag_add('image', index)

txtbox.tag_bind('image', '<Button-1>', on_image_click)
Run Code Online (Sandbox Code Playgroud)
  • window_createandbind用于小部件:

您可以使用标签来image_create显示图像,然后在该标签上进行绑定并在文本小部件上显示该标签,而不是使用window_create

label = Label(txtbox, image=my_image)

txtbox.window_create(txtbox.index('insert'), window=label)
label.bind('<Button-1>', on_image_click)
Run Code Online (Sandbox Code Playgroud)