gpt4 book ai didi

python - 在 Canvas 中移动鼠标并显示以相同方式移动的点,但在另一个 Canvas 中

转载 作者:行者123 更新时间:2023-12-01 01:46:09 25 4
gpt4 key购买 nike

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

我已经尝试过:

    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(<item>, *new_coords)<item>create_oval 返回的 Canvas 项 ID (一个整数)。

这是一个例子:

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()

关于python - 在 Canvas 中移动鼠标并显示以相同方式移动的点,但在另一个 Canvas 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51324740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com