Tkinter:拖动小部件

3
我想为一个小部件添加拖放功能。这是代码:

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个回答

1

它跳来跳去是因为你告诉它这样做,如下所示:

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

最好使用画布小部件,最好使用B1-Click和B1-Release事件并计算增量。查找随Tkinter一起提供的小部件演示。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接