Python 在画布中移动鼠标,并在另一个画布中以相同的方式显示移动的点

Python 在画布中移动鼠标,并在另一个画布中以相同的方式显示移动的点,python,tkinter,tkinter-canvas,Python,Tkinter,Tkinter Canvas,我正在用Tkinter(Python3)创建一个有两个画布的界面。我想将鼠标悬停在一个画布上,并显示一个点以与鼠标相同的方式移动,但在另一个画布上 我试过这个: def motion(self,event): x, y = event.x, event.y self.dot=self.canvas.create_oval((x,y), (x,y), width=2, outline='red', fill='red') 问题是,我可以显示

我正在用Tkinter(Python3)创建一个有两个画布的界面。我想将鼠标悬停在一个画布上,并显示一个点以与鼠标相同的方式移动,但在另一个画布上

我试过这个:

    def motion(self,event):
            x, y = event.x, event.y
            self.dot=self.canvas.create_oval((x,y), (x,y), width=2, outline='red', fill='red')
问题是,我可以显示该点,但这一点将保留。我也尝试在创建点后删除它,但这样它将不会出现:

    def motion(self,event):
            x, y = event.x, event.y
            self.dot=self.canvas.create_oval((x,y), (x,y), width=2, outline='red', fill='red')
            self.canvas.delete(self.dot)
有人能帮我吗?
非常感谢

您不必每次鼠标移动时都创建一个新点。创建一次点,并使用canvas方法
coords(,*new\u coords)
移动它
是由
create\u oval
返回的画布项目id(一个int)

以下是一个例子:

import tkinter as tk

def on_move(event):
    x, y = event.x, event.y
    canvas2.coords(dot, x - 5, y - 5, x + 5, y + 5)

root = tk.Tk()

canvas1 = tk.Canvas(root)
canvas2 = tk.Canvas(root, bg='white')

canvas1.pack(side='left')
canvas2.pack(side='right')
dot = canvas2.create_oval(-10, -10, 0, 0, fill='black')

canvas1.bind('<Motion>', on_move)

root.mainloop() 
将tkinter作为tk导入
def移动(事件):
x、 y=事件.x,事件.y
画布2.坐标(dot,x-5,y-5,x+5,y+5)
root=tk.tk()
canvas1=tk.Canvas(根)
canvas2=tk.Canvas(根,bg='white')
画布1.包装(侧边为左)
画布2.包装(侧面为右)
点=画布2.创建椭圆(-10,-10,0,0,fill='black')
画布1.绑定(“”,移动中)
root.mainloop()