究竟是什么让canvas.coords()回归?

时间:2017-07-12 10:36:37

标签: python tkinter

我遇到了一些问题(再次!):根据this documentation应该

temporary = cv.create_text(a,b, text = "ip example", anchor = E)
x,y = cv.coords(temporary)
print(coords)

返回元组(x1,y1,x2,y2) 可悲的是,我只得到两个坐标:(例如:(347.08203932499373, 320.5342302750968))。

出了什么问题?

编辑:

1)更确切地说,这一点在文档p.23,.coords§@ DeepSpace

2)我理解这一点,但我绝对需要左上角和右下角的顶点坐标。如果cv.coords()没有返回这些值,我怎么能找到它们? @RonNorris

1 个答案:

答案 0 :(得分:2)

没有出错。文本项只有两个坐标。

听起来您正在寻找边界框的坐标而不是项目的坐标。边界框是完全围绕您的项目的最小矩形。您可以使用bbox方法获取边界框的坐标:

x0, y0, x1, y1 = cv.bbox(temporary)

bbox命令的官方文档说明了这一点:

  

返回一个包含四个元素的列表,为tagOrId参数指定的所有项提供近似边界框。该列表具有“x1 y1 x2 y2”的形式,使得所有命名元素的绘制区域在左边的x1,右边的x2,顶部的y1和底部的y2的范围内。返回值可能会高估几个像素的实际边界框。如果没有任何项匹配任何tagOrId参数,或者匹配项具有空边界框(即它们没有显示任何内容),则返回空字符串。