[英]Python : Only one element return in tuple return by find_closest
我有这段代码可以创建一个矩形,如果他附近还有其他东西可以说:
def creaRect(event):
#rect = Rectangle.Rectangle(canvas, event, CanWidth=Width, CanHeight=Height)
width, height = 25, 25
x, y = event.x, event.y
x1 = int(x-width/2)
y1 = int(y-height/2)
x2 = int(x+width/2)
y2 = int(y+height/2)
rect = canvas.create_rectangle((x1, y1, x2, y2), outline="red", width=1, tags="bloc")
Rectangle.OidRect.append(rect)
near = canvas.find_closest(x, y, 200)
print(len(near))
但是find_closest返回的元组的长度是每次1,而我在同一位置或实际上在附近创建了许多矩形。 对我来说,find_closest应该返回一个元组,其中x,y坐标周围的所有项目的ID都在200的范围内。这是我不理解或做错的事情吗?
从关于find_closest()
的文档开始
find_closest(self,x,y,halo = None,start = None)
返回最接近X,Y像素的项目。如果有多个匹配项,则返回最顶部。 所有比HALO更近的项目都被认为是重叠的(都是最接近的)。 如果指定了START,则采用该标签下的下一个标签。
所以find_closest()
只会给您最接近的一项。 如果要在距某个点的距离内找到多个项目(这听起来像您想要的那样),请尝试:
find_overlapping(x1,y1,x2,y2)
查找与给定矩形重叠或完全由给定矩形包围的所有项目。
x1-左边缘。
y1-上边缘。
x2-右边缘。
y2-下边缘。
返回:
包含所有匹配项的元组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.