2010-07-17 150 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一起出現的小部件演示。