2010-07-17 296 views
3

我想为小部件做一个拖放功能。代码是这样的:tkinter:拖动小部件

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

基本上,它应该把小部件放到你移动鼠标到的位置。相反,小部件在整个窗口中跳转。 任何想法如何解决这个问题?

回答

1

它是跳跃所有的地方,因为你是它告诉给如图:

def frameDrag(event): 
    print event.x, event.y 
    frame.place(x = event.x , y = event.y) 

更好地使用画布组件和更好的使用B1-点击和B1-释放事件和计算三角洲。寻找与Tkinter一起出现的小部件演示。