我有一个带有滚动条的 Tkinter 画布,还有一些项目,当我单击它们时,它应该返回坐标。(使用 Python。)
这适用于最初在窗口中可见的对象。但是,当我向下滚动并且画布上更下方的项目进入视图时,单击时我没有得到它们的画布坐标,而是窗口坐标。
我找不到有关如何获取绝对坐标的信息,所以我想知道这里是否有人知道该怎么做?
谢谢。
我有一个带有滚动条的 Tkinter 画布,还有一些项目,当我单击它们时,它应该返回坐标。(使用 Python。)
这适用于最初在窗口中可见的对象。但是,当我向下滚动并且画布上更下方的项目进入视图时,单击时我没有得到它们的画布坐标,而是窗口坐标。
我找不到有关如何获取绝对坐标的信息,所以我想知道这里是否有人知道该怎么做?
谢谢。
在此处查看画布小部件的文档。
要将窗口坐标转换为画布坐标,请使用
canvasx
和canvasy
方法。
find_closest()
这是一个示例回调函数,它转换窗口的 x 和 y 坐标并通过方法打印最接近该位置的项目。
def callback(event):
canvas = event.widget
x = canvas.canvasx(event.x)
y = canvas.canvasy(event.y)
print canvas.find_closest(x, y)