开发者

tkinter: dragging widgets

I'd like to make a drag-n-drop function for a widget. The code is this:

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 = 3开发者_如何学Go0)
frame.place(x=0, y=0)
frame.bind("<B1-Motion>", frameDrag)

root.mainloop()

Basically, it should place the widget to the location you move your mouse to. Instead, the widget jumps around all over the window. Any ideas how to fix this?


It is jumping all over the place because you are telling it to as shown by:

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

Better to use a canvas widget and better to use B1-Click and B1-Release events and compute the delta. Look for the widget demo that comes along with Tkinter.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜