tkinter:拖动小部件

时间:2010-07-17 11:22:18

标签: python-3.x 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 个答案:

答案 0 :(得分:1)

它正在跳到各处,因为你告诉它如下所示:

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

最好使用画布小部件,更好地使用B1-Click和B1-Release事件并计算增量。寻找与Tkinter一起出现的小部件演示。