【发布时间】:2022-01-04 15:46:00
【问题描述】:
我试图形成一个拖放小部件,但我不明白应该使用什么作为函数“drag_motion”中的坐标(在下面给出的代码中),但请先回答 x 和 Y 是什么在 label.place(x= , y= ) 中具体代表小部件上的哪个位置,或者它们是否有所不同?
from tkinter import*
def drag_start(event):
label.startX = event.x
label.startY = event.y
def drag_motion(event):
x = event.x - label.startX
y = event.y - label.startY
label.place(x=x, y=y)
window = Tk()
label = Label(window, bg="red", width=5, height=5)
label.place(x=0, y=0)
label.bind("<Button-1>", drag_start)
label.bind("<B1-Motion>", drag_motion)
window.mainloop()
【问题讨论】:
-
把
x改成x = event.widget.winfo_x() + event.x - label.startX,y也一样