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

时间:2018-03-02 13:40:18

标签: python tkinter

从下面的代码可以看出,我已将文本标签绑定到函数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()

1 个答案:

答案 0 :(得分: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)

图片占用一个字符