Tkinter:获取鼠标绘制矩形的坐标

Posted

技术标签:

【中文标题】Tkinter:获取鼠标绘制矩形的坐标【英文标题】:Tkinter: getting coordinates of a mouse drawn rectangle 【发布时间】:2015-07-03 05:39:33 【问题描述】:

根据我之前的question 的答案,我想知道如何获取代表矩形角的 4 个像素的坐标以及它的 2 个维度?

【问题讨论】:

这些值似乎在self.start_xself.start_ycurXcurY 中。究竟是什么问题? 【参考方案1】:

只需使用on_button_press()on_button_release() 方法的event 参数中包含的x,y 坐标:

width = abs(xRelease - xPress)
height = abs(yRelease - yPress)

【讨论】:

【参考方案2】:

您可以使用canvas.bbox(item) 获取画布上某个项目的边界框的坐标。因为您的项目是一个矩形,所以边界框正好代表矩形。 在您的情况下,它将是:

self.canvas.bbox(self.rect)

这将返回一个包含 (x0, y0, x1, y1) 的元组,其中点 0 是左上角,点 1 是右下角。 您可以轻松地将它们转换为四个角和尺寸:

Upper left  = x0, y0
Upper right = x1, y0
Lower left  = x0, y1
Lower right = x1, y1

width  = x1-x0
height = y1-y0

【讨论】:

以上是关于Tkinter:获取鼠标绘制矩形的坐标的主要内容,如果未能解决你的问题,请参考以下文章

BaiduMap 鼠标绘制矩形选框四个顶角坐标的获取

使用鼠标在 python tkinter 画布上绘制并获取指向列表的点?

在画布上用鼠标绘制矩形与鼠标坐标不同步

在鼠标位置绘制矩形和形状渲染矩形

在按下和释放鼠标时绘制一个矩形,opengl

使用 python 在打开的 cv 中使用鼠标事件绘制矩形或线条