我连续有多个Tkinter.labels,我希望用户能够在每一个上点击并拖动鼠标,并在此过程中激活它们。
我知道绑定,但我在一个绑定中需要多个事件。我一直在使用<Button-1>
和<Enter>
,但是我只需要在两者都为真时调用回调。
我知道l.bind('<Button-1>,<Enter>', ...)
无效。
任何有更多Tkinter经验的人都知道链式绑定的方法,或者进行多重绑定吗?
答案 0 :(得分:2)
解决此特定问题的方法是在ButtonPress
和ButtonRelease
上设置绑定设置标志。然后,在<Enter>
(或任何其他事件)的绑定中,检查该标志。
但是,按下按钮时,您将不会收到任何<Enter>
个事件。这是因为您单击的小部件抓取指针并拥有它,直到您释放按钮。按下按钮时,您将获得的唯一<Enter>
事件是当您输入最初点击的小部件时。
您想要做的是绑定到<B1-Motion>
。然后,您可以使用事件的x / y坐标和winfo_containing
来确定您结束的小部件。
话虽这么说,尝试模拟一行标签上的选择是很多工作,但收效甚微。为什么不使用已经内置选择的文本小部件?你可以调整它,使它看起来像一堆标签(即:使背景与框架的颜色相同),你可以关闭编辑。这可能是一种更容易的方式。