在Python中使用鼠标光标悬停在某物上时显示消息

发布于 2021-01-29 18:38:55

我有一个用TKinter在Python中制作的GUI。我希望能够在鼠标光标移动到标签或按钮上方时显示一条消息。这样做的目的是向用户解释按钮/标签的作用或代表什么。

将鼠标悬停在tkinter对象上时,是否可以显示文本?

关注者
0
被浏览
141
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您需要在<Enter><Leave>事件上设置绑定。

    注意:如果选择弹出窗口(即工具提示),请确保不要将其直接弹出在鼠标下方。因为光标离开标签并进入弹出窗口,将导致离开事件触发。然后,您的请假处理程序将关闭该窗口,您的光标将输入标签,这将导致进入事件,该事件将弹出该窗口,这将导致一个请假事件,该事件将使该窗口消失,从而导致一个enter事件,…
    ad无限

    为简单起见,这是一个更新标签的示例,类似于某些应用程序使用的状态栏。创建工具提示或其他方式来显示信息仍然从绑定到<Enter>和的相同核心技术开始<Leave>

    import Tkinter as tk
    
    class Example(tk.Frame):
        def __init__(self, *args, **kwargs):
            tk.Frame.__init__(self, *args, **kwargs)
            self.l1 = tk.Label(self, text="Hover over me")
            self.l2 = tk.Label(self, text="", width=40)
            self.l1.pack(side="top")
            self.l2.pack(side="top", fill="x")
    
            self.l1.bind("<Enter>", self.on_enter)
            self.l1.bind("<Leave>", self.on_leave)
    
        def on_enter(self, event):
            self.l2.configure(text="Hello world")
    
        def on_leave(self, enter):
            self.l2.configure(text="")
    
    if __name__ == "__main__":
        root = tk.Tk()
        Example(root).pack(side="top", fill="both", expand="true")
        root.mainloop()
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看