在 Python Tkinter 中,如何使用名称获取嵌入在文本小部件中的图像的索引?

In Python Tkinter, how do I get the index of an image embedded in a text widget using the name?

我正在使用 Python Tkinter 创建一个应用程序,我在其中为用户提供了将图像插入文本小部件的选项。我知道当你插入一张图片时,你没有指定 name 属性,tkinter 会自动生成一个。还有一种方法可以使用 text.image_names() 方法获取文本小部件中所有 name 的元组。我看过的所有与文本小部件图像相关的方法都只将图像的索引作为属性。但是,我不知道图片的索引。

如果有人能告诉我是否有一种方法可以让函数以图像的 name 为属性,并在 return 中获取索引,那就太好了。

您可以在图片名称上使用Text.index()来获取"line.column"格式的图片索引。

下面是一个例子:

import tkinter as tk

root = tk.Tk()

text = tk.Text(root, width=80, height=20)
text.pack()

text.insert('end', 'This is line 1\n')
text.insert('end', 'Embed an image ')
img = tk.PhotoImage(file='sample.png')
text.image_create('end', image=img, name='img1')
text.insert('end', ' in a line')

print('Image with name "img1" is at index', text.index('img1'))

root.mainloop()

您将在控制台中获得 Image with name "img1" is at index 2.15