为何鼠标在Canvas外时仍生成左上角圆形且输出-1 -1?
问题原因解析
当鼠标处于Canvas区域外时,canvas.get_mouse_x() 和 canvas.get_mouse_y() 会返回**-1**作为默认值——这是多数图形库的通用设计逻辑:当检测不到鼠标在目标画布范围内时,就用一个特殊值(通常是-1)来表示“鼠标不在有效区域”。
看你这段代码:
mouse_x = canvas.get_mouse_x() mouse_y = canvas.get_mouse_y() canvas.create_oval(mouse_x, mouse_y, mouse_x + SIZE, mouse_y + SIZE) print(mouse_x, mouse_y)
当mouse_x和mouse_y都是-1时,椭圆的坐标会变成(-1, -1, -1+SIZE, -1+SIZE)。Canvas的坐标原点在左上角(0,0),传入负数坐标时,画布会自动裁剪超出可视区域的部分,但如果SIZE是正数,椭圆的右上部分会落在画布内,最终就会在左上角显示出一个圆形。终端打印的-1 -1就是这两个API返回的默认无效值。
内容的提问来源于stack exchange,提问作者New2905
相关产品推荐
相关产品推荐

