Python tkinter:如何在画布中限制鼠标光标?

Python tkinter:如何在画布中限制鼠标光标?,python,canvas,tkinter,cursor,mouse,Python,Canvas,Tkinter,Cursor,Mouse,我使用tkinter的画布加载一个图像,并在上面绘制一个向量(使用create_line) 我想在绘制这个向量时限制鼠标的移动,这样它就不能被拖到图像区域之外,不管它是什么。鼠标光标应该正好捕捉回图像边界 我尝试了搜索,并找到了各种处理方法,理想情况下,这需要跨平台。到目前为止,我无法让这些不同的方法发挥作用。。。所以我请求帮助!谢谢:)好的,最后我决定不在物理上限制鼠标光标(通过强制鼠标光标不超过某些坐标),而是虚拟地限制鼠标光标(通过将鼠标位置存储到一个变量,然后在鼠标需要停留的边界框周围移

我使用tkinter的画布加载一个图像,并在上面绘制一个向量(使用create_line)

我想在绘制这个向量时限制鼠标的移动,这样它就不能被拖到图像区域之外,不管它是什么。鼠标光标应该正好捕捉回图像边界


我尝试了搜索,并找到了各种处理方法,理想情况下,这需要跨平台。到目前为止,我无法让这些不同的方法发挥作用。。。所以我请求帮助!谢谢:)

好的,最后我决定不在物理上限制鼠标光标(通过强制鼠标光标不超过某些坐标),而是虚拟地限制鼠标光标(通过将鼠标位置存储到一个变量,然后在鼠标需要停留的边界框周围移动鼠标)。所以鼠标光标可以移动到任何它想移动的地方,但是当它实际在里面画东西时,它会停留在我想要它移动的指定区域内

任务是在画布上画线,覆盖加载的图像。线条不应该经过图像的边界。结果如下:

imgsize = (int(self.viewport.cget('width')) - 1,int(self.viewport.cget('height')) - 1)
# limit the draggable mouse area to just the image dimensions
if event.x < 4:
    currentx = 4
elif event.x > imgsize[0]:
    currentx = imgsize[0]
else:
    currentx = event.x
if event.y < 4:
    currenty = 4
elif event.y > imgsize[1]:
    currenty = imgsize[1]
else:
    currenty = event.y
imgsize=(int(self.viewport.cget('width'))-1,int(self.viewport.cget('height'))-1)
#将可拖动鼠标区域限制为仅图像尺寸
如果事件x<4:
电流X=4
elif event.x>imgsize[0]:
currentx=imgsize[0]
其他:
currentx=event.x
如果事件y<4:
电流y=4
elif event.y>imgsize[1]:
当前Y=imgsize[1]
其他:
currenty=event.y

从那时起,就是创建线的时间。

您找到了哪些方法?这可能会省去发布您已拒绝的解决方案的麻烦。这可能是这样的:我似乎找不到一种方法使其在画布上工作,将鼠标光标移动限制在其边界内(