Python,Tkinter:如何在可滚动画布上获取坐标

时间:2012-07-03 07:00:53

标签: python canvas tkinter scrollbar coordinates

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

这适用于最初在窗口中可见的对象。然而,当我向下滚动时,画布上的物品进入视图,我点击时没有获得画布坐标,但窗口坐标。

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

感谢。

1 个答案:

答案 0 :(得分:9)

查看画布小部件here的文档。

  

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

以下是一个示例回调函数,它可以转换窗口的x和y坐标,并通过find_closest() method打印最接近该位置的项目。

def callback(event):
    canvas = event.widget
    x = canvas.canvasx(event.x)
    y = canvas.canvasy(event.y)
    print canvas.find_closest(x, y)