我知道可以在tkinter Text
小部件中将坐标转换为索引。但是相反也可能吗?
基本上我想知道在按下鼠标按钮时鼠标坐标是否在索引"10.end"
的坐标之前或之后(例如)。
行号可以是任何内容。当鼠标被按下但尚未释放时,我无法使用current
。
答案 0 :(得分:2)
如果您要比较鼠标是否在一个字符之前或之后,您不需要将索引转换为坐标以执行您想要的操作。您可以直接将索引与事件的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
坐标进行比较。