Phi*_*tte 4 python canvas tkinter items
我正在开发一个小型 python gui,只是为了娱乐和学习,并且我一直在尝试更改画布项目上的光标形状。
我知道当鼠标悬停在画布小部件上时,可以在画布创建时使用cursor=“whatever”选项来更改光标形状。但我只想对画布内的项目执行此操作。
这使得该项目正确:
self.image_obj = canvas.create_image(
self.column_coordinate,
self.row_coordinate,
image=image
)
Run Code Online (Sandbox Code Playgroud)
那是行不通的:
self.image_obj = canvas.create_image(
self.column_coordinate,
self.row_coordinate,
image=image,
cursor="hand1"
)
Run Code Online (Sandbox Code Playgroud)
项目似乎不存在“光标”选项,有没有办法解决这个问题?
小智 5
花了一些时间弄清楚这一点。
下面的方法适用于使用带有 Enter 和 Leave 的 tag_bind() 方法的所有形状。
import tkinter as tk
main_window = tk.Tk()
def check_hand_enter():
canvas.config(cursor="hand1")
def check_hand_leave():
canvas.config(cursor="")
canvas = tk.Canvas(width=200, height=200)
tag_name = "polygon"
canvas.create_polygon((25, 25), (25, 100), (125, 100), (125, 25), outline='black', fill="", tag=tag_name)
canvas.tag_bind(tag_name, "<Enter>", lambda event: check_hand_enter())
canvas.tag_bind(tag_name, "<Leave>", lambda event: check_hand_leave())
canvas.pack()
main_window.mainloop()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5556 次 |
| 最近记录: |