【问题标题】:tkinter: dragging widgetstkinter:拖动小部件
【发布时间】:2010-07-17 11:22:17
【问题描述】:

我想为小部件制作拖放功能。代码是这样的:

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

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

【问题讨论】:

    标签: python-3.x tkinter


    【解决方案1】:

    它到处乱跳,因为你告诉它,如下所示:

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

    最好使用画布小部件,最好使用 B1-Click 和 B1-Release 事件并计算增量。寻找 Tkinter 附带的小部件演示。

    【讨论】:

      猜你喜欢
      • 2016-09-13
      • 2010-12-30
      • 2014-02-20
      • 2017-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多