如何将Tkinter Text小部件中的图像绑定到事件?

问题描述 投票:1回答:1

从下面的代码中可以看出,我将文本标签绑定到函数prt()

我希望将相同的绑定应用于图像。

我已经尝试为图像创建标签,但似乎没有选项。

这是代码:

import tkinter as tk
from PIL import ImageTk, Image


def prt (txt):
    print(txt)

root = tk.Tk()

i = Image.open("image_name/path")
retweet_img = ImageTk.PhotoImage(i)

text = tk.Text(root, height = 5, width = 10, cursor ="hand2")
text.pack()
text.insert(tk.END, "Press\n", "txt_click")
text.tag_bind("txt_click", "<Button-1>", lambda event: prt("TEXT BIND WORKS"))
text.image_create("2.0", image=retweet_img)
text.tag_bind(retweet_img, "<Button-1>", lambda  event: prt("IMAGE BIND WORKS"))

root.mainloop()
python tkinter
1个回答
2
投票

文本小部件标签分配在索引范围内。创建并配置标记,然后将其应用于包含图像的范围。例如:

tag = "RETWEET"
index = "2.0"
imgname = text.image_create(index, image=retweet_img)
text.tag_add(tag, index, "{0} + 1 char".format(index))
text.tag_bind(tag, "<Button-1>", on_image_click)

图像占用一个字符

© www.soinside.com 2019 - 2024. All rights reserved.