鼠标拖动时激活其他小部件

时间:2011-06-09 15:32:57

标签: python tkinter

我连续有多个Tkinter.labels,我希望用户能够在每一个上点击并拖动鼠标,并在此过程中激活它们。

我知道绑定,但我在一个绑定中需要多个事件。我一直在使用<Button-1><Enter>,但是我只需要在两者都为真时调用回调。

我知道l.bind('<Button-1>,<Enter>', ...)无效。

任何有更多Tkinter经验的人都知道链式绑定的方法,或者进行多重绑定吗?

1 个答案:

答案 0 :(得分:2)

解决此特定问题的方法是在ButtonPressButtonRelease上设置绑定设置标志。然后,在<Enter>(或任何其他事件)的绑定中,检查该标志。

但是,按下按钮时,您将不会收到任何<Enter>个事件。这是因为您单击的小部件抓取指针并拥有它,直到您释放按钮。按下按钮时,您将获得的唯一<Enter>事件是当您输入最初点击的小部件时。

您想要做的是绑定到<B1-Motion>。然后,您可以使用事件的x / y坐标和winfo_containing来确定您结束的小部件。

话虽这么说,尝试模拟一行标签上的选择是很多工作,但收效甚微。为什么不使用已经内置选择的文本小部件?你可以调整它,使它看起来像一堆标签(即:使背景与框架的颜色相同),你可以关闭编辑。这可能是一种更容易的方式。

相关问题