【发布时间】:2021-02-09 03:17:49
【问题描述】:
我想要一个被用户拖动的小部件在小部件靠近它时固定在特定的网格单元格中,有没有办法在 tkinter 中做到这一点?我设法通过在用户拖动小部件时获取用户的鼠标位置来使小部件可拖动,但我不知道如何将其固定到网格单元格中。
这是我目前用来移动小部件的工具
def make_draggable(self):
def drag_start(event):
widget = self
widget = event.widget
self._drag_start_x = event.x
self._drag_start_y = event.y
def drag_motion(event):
widget = self
widget = event.widget
x = self.winfo_x() - self._drag_start_x + event.x
y = self.winfo_y() - self._drag_start_y + event.y
self.place(x=x, y=y)
self.bind("<Button-1>", drag_start)
self.bind("<B1-Motion>", drag_motion)
例如,如果网格单元格的左上角位置是 (x=10,y=10) 我需要按钮在其位置接近该值时固定在单元格中(例如 9,9 8,8 9 ,5 等)
【问题讨论】:
-
“固定在特定的网格单元中”相当模糊。它已经在网格单元格中了吗?如果不是,你怎么把它放在屏幕上?请提供minimal reproducible example。
-
@BryanOakley 我已经编辑了我的问题,现在更清楚,请检查并帮助我
标签: python python-3.x tkinter grid widget