仅当光标悬停在标签上时,如何将光标更改为手形? [英] How do I change my cursor to a hand ONLY when it is hovering over a Label?

查看:41
本文介绍了仅当光标悬停在标签上时,如何将光标更改为手形?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

from tkinter import *
root = Tk()
def changeCursor(event, pointerName):
    root.cursor(pointerName)
link = Label(root, text="Link")
link.bind("<Motion>", lambda event : changeCursor(event, "hand"))
link.pack()
root.mainloop()

当我的光标悬停在它上面时,我希望我的光标变成一只手".当光标离开标签占据的区域时,我还想将光标改回箭头.但是我收到以下错误:

I want my cursor to change into a "hand" when my cursor is hovering over it. I also want to change my cursor back into an arrow when the cursor leaves the area occupied by the label. However I get the following error:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\Arnob\AppData\Local\Programs\Python\Python36-
32\lib\idlelib\run.py", line 137, in main
    seq, request = rpc.request_queue.get(block=True, timeout=0.05)
  File "C:\Users\Arnob\AppData\Local\Programs\Python\Python36-
32\lib\queue.py", line 172, in get
   raise Empty
queue.Empty

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Arnob\AppData\Local\Programs\Python\Python36-
32\lib\tkinter\__init__.py", line 1699, in __call__
    return self.func(*args)
  File "<pyshell#7>", line 1, in <lambda>
  File "<pyshell#4>", line 2, in changePointer
  File "C:\Users\Arnob\AppData\Local\Programs\Python\Python36-
32\lib\tkinter\__init__.py", line 2095, in __getattr__
    return getattr(self.tk, attr)
AttributeError: '_tkinter.tkapp' object has no attribute 'cursor'

如何将光标在Label占据的区域内变成手形,离开Label所在的区域时又变回箭头?

How do I change the cursor into a hand when it is in the area occupied by the Label and then change it back to an arrow when it leaves the area occupied by the Label?

推荐答案

如果您希望光标始终是手,只需将标签配置为具有该光标:

If you want the cursor to always be the hand, just configure the label to have that cursor:

import tkinter as tk

root = tk.Tk()

label = tk.Label(root, text="Hello, world", background="bisque", cursor="hand1")
label.pack(side="top", fill="x", padx=10, pady=10)

root.mainloop()

这篇关于仅当光标悬停在标签上时,如何将光标更改为手形?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆