我想为小部件制作拖放功能。代码是这样的:
from tkinter import *
root = Tk()
root.config(background = "red", width = 500, height = 500)
root.title("root")
def frameDrag(event):
frame.place(x = event.x , y = event.y)
frame = Frame(root, width = 60, height = 30)
frame.place(x=0, y=0)
frame.bind("<B1-Motion>", frameDrag)
root.mainloop()
基本上,它应该将小部件放置到您将鼠标移动到的位置。相反,小部件会在整个窗口跳转。 任何想法如何解决这个问题?
答案 0 :(得分:1)
它正在跳到各处,因为你告诉它如下所示:
def frameDrag(event):
print event.x, event.y
frame.place(x = event.x , y = event.y)
最好使用画布小部件,更好地使用B1-Click和B1-Release事件并计算增量。寻找与Tkinter一起出现的小部件演示。