【发布时间】:2021-10-03 14:38:09
【问题描述】:
我发现了一些关于类似问题的问题。但和我的问题不一样。
如果我的鼠标向左或向右或向下移动,一切正常。但是,如果我将鼠标快速向上移动,x y 位置有时是错误的!为了以最好的方式描述问题,我为您准备了一个简短的视频。如果我将鼠标移动得很慢,则没有问题。为什么?鼠标左、右、下速度没有问题。
这是我的python代码:
import tkinter as tk
root = tk.Tk()
root.geometry('2000x600')
# Textausgabe erzeugen
label1 = tk.Label(root, text="Hallo Welt!",
fg="red",
bg="orange",
font=("times", 25, "bold", "italic"))
label1.place(x=1, y=1)
#Grafik einbetten
bild1 = tk.PhotoImage(file="biene.png")
label2 = tk.Label(root, image=bild1)
label2.place(x=1,y=100)
def motion(event):
global pos_x, pos_y, r_pos_x, r_pos_y
pos_x = event.x
pos_y = event.y
label2.place(x=pos_x-60,y=pos_y-110)
print('{}, {}'.format(pos_x, pos_y))
【问题讨论】:
-
对于这样的事情,使用
Canvas会是更好的方法。Canvas专为基本的 2D 绘图和游戏而设计,与place()不同,后者仅设计用于将小部件放入窗口中。使用Canvas将使这段代码的问题少得多,并且不会闪烁。 -
非常感谢。我现在走在正确的路上。它工作正常。现在我必须找到一些东西来从图像中获取 x y 坐标来计算位置,因为我使用 .move from canvas ...
-
您可以使用
canvas.coords(image)获取image的坐标列表。canvas.coords()适用于Canvas中的任何内容。 -
谢谢@SylvesterKruin - 我使用了你的解决方案。它工作正常。