7

我有一个带有滚动条的 Tkinter 画布,还有一些项目,当我单击它们时,它应该返回坐标。(使用 Python。)

这适用于最初在窗口中可见的对象。但是,当我向下滚动并且画布上更下方的项目进入视图时,单击时我没有得到它们的画布坐标,而是窗口坐标。

我找不到有关如何获取绝对坐标的信息,所以我想知道这里是否有人知道该怎么做?

谢谢。

4

1 回答 1

12

在此处查看画布小部件的文档。

要将窗口坐标转换为画布坐标,请使用canvasxcanvasy方法。

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)
于 2012-07-03T12:23:39.980 回答