是否可以将tkinter文本索引转换为坐标?



我知道在tkinter Text小部件中可以将坐标转换为索引。但反过来也有可能吗?

基本上我想找出鼠标坐标,当鼠标按钮被按下时,是在索引"10.end"的坐标之前还是之后(例如)。

行号可以是任何值。

我不能使用current

如果要比较鼠标是在一个字符之前还是在另一个字符之后,则不需要将索引转换为坐标来执行所需操作。您可以直接将索引与事件的x、y坐标进行比较:

def on_motion(event):
    event.widget.compare("@%s,%s" % (event.x, event.y), "10.end")
...
text = tk.Text(...)
text.bind("<B1-Motion>", on_motion)

如果你试图比较鼠标是在另一个字符的左边还是右边(不管y坐标是什么),你唯一的选择是获得字符的x,y并自己进行比较。

要做到这一点,您可以使用文本小部件的bbox方法来获取以像素为单位的特定索引的边界框。您将得到索引左上角的x/y,以及宽度和高度。然后,您可以将事件的x坐标与索引的x坐标进行比较。

相关内容

  • 没有找到相关文章

最新更新