【发布时间】:2021-01-19 19:38:03
【问题描述】:
是否可以在按下鼠标时跟踪我用鼠标输入的小部件? 我想创建一个类似链的效果,标签\按钮的背景在单击并拖动鼠标并从小部件移动到小部件时发生变化。
谢谢:)
【问题讨论】:
是否可以在按下鼠标时跟踪我用鼠标输入的小部件? 我想创建一个类似链的效果,标签\按钮的背景在单击并拖动鼠标并从小部件移动到小部件时发生变化。
谢谢:)
【问题讨论】:
您可以绑定<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()
【讨论】:
我已经完成了跟踪特定小部件的进入/退出之类的工作:
widget.bind("<Enter>", enter_func)
widget.bind("<Leave>", exit_func)
你可以用它做一些可爱的事情
【讨论】: