text - 获取TKINTER中屏幕上显示的文本的位置/坐标和大小

标签 text tkinter coordinates python-imaging-library bounding-box

我们即将进行一项眼球追踪研究,尝试评估对屏幕上显示的特定单词的注视。 我有很多 .txt 文件需要转换为图像并显示在屏幕上进行实验。 我正在尝试找到一种方法来布局文本,以便我知道屏幕上每个单词的确切位置和长度。

我想到使用 tkinter 在 Canvas 内布局文本。 我不太确定这是否是一个好方法以及如何将输出转换为图像。 另一种选择可能是使用 PIL。

有什么建议吗?

谢谢!!!

最佳答案

如果您使用 Canvas ,则 bbox您可以返回项目的边界框。

from Tkinter import *

def callback(event, text_id):
    print event.widget.bbox(text_id)

root = Tk()
canvas = Canvas(root, width=400, height=200)
text = "the lazy dog jumped over the brown fox"
offset = 20
for word in text.split(" "):
    text_id = canvas.create_text(offset, 50, text=word, anchor=W)
    bbox = canvas.bbox(text_id)
    offset += bbox[2] - bbox[0] + 5
    canvas.tag_bind(text_id, "<Button-1>",
                    lambda e, i=text_id: callback(e, i))
canvas.pack()
root.mainloop()

关于text - 获取TKINTER中屏幕上显示的文本的位置/坐标和大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16654648/

相关文章:

用于检测和删除文件中文本的 Windows 命令

java - 从文本文件中读取两列并在 java 中对两列进行排序

python - Tkinter:AttributeError:NoneType 对象没有属性<属性名称>

安卓触摸输入 : Coordinates?

javascript - 遍历坐标数组并计算距离javascript

java - 从 GridBagLayout 中的特定坐标获取组件

jquery - 如何使用 jQuery 更改文本颜色?

css - 将文本 float 到文本区域的右侧

python - 菜单总索引数、菜单项长度

python - 如何在列表框上绑定(bind) "select all"事件?