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

Yng*_*gve 7 python canvas tkinter scrollbar coordinates

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

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

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

谢谢.

gar*_*ary 9

在此处查看canvas小部件的文档.

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

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

def callback(event):
    canvas = event.widget
    x = canvas.canvasx(event.x)
    y = canvas.canvasy(event.y)
    print canvas.find_closest(x, y)
Run Code Online (Sandbox Code Playgroud)