【问题标题】:Tkinter Enter and Motion bindingsTkinter Enter 和 Motion 绑定
【发布时间】:2021-01-19 19:38:03
【问题描述】:

是否可以在按下鼠标时跟踪我用鼠标输入的小部件? 我想创建一个类似链的效果,标签\按钮的背景在单击并拖动鼠标并从小部件移动到小部件时发生变化。

谢谢:)

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

    您可以绑定<B1-Motion>事件,然后使用winfo_containing获取光标下的widget。

    这是一个简单的例子:

    import tkinter as tk
    
    root = tk.Tk()
    
    current_label = tk.Label(root, text="", anchor="w", width=100)
    current_label.pack(side="top", fill="x")
    
    def show_widget(event):
        widget = event.widget.winfo_containing(event.x_root, event.y_root)
        current_label.configure(text=f"widget: {str(widget)}")
    
    for x in range(10):
        name = f"Label #{x+1}"
        label = tk.Label(root, text=name)
        label.pack(padx=10, pady=10)
        label.bind("<B1-Motion>", show_widget)
    
    root.mainloop()
    

    【讨论】:

      【解决方案2】:

      我已经完成了跟踪特定小部件的进入/退出之类的工作:

      widget.bind("<Enter>", enter_func)
      widget.bind("<Leave>", exit_func)
      

      你可以用它做一些可爱的事情

      【讨论】:

      • 问题是,一旦我单击一个小部件,该小部件上的事件就会“锁定”,而其他小部件不会对“”绑定做出正确反应
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-02
      • 2014-03-23
      • 1970-01-01
      • 1970-01-01
      • 2020-05-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多