Tkinter 绑定到 arc
Tkinter bind to arc
我正在使用 Tkinter 在 python 中编写一个简单的 noughts - and - crosses 游戏,并且希望仅当您将鼠标悬停在它们上方时才显示 Os。为此,我知道我需要添加一个事件绑定,但不知道如何添加,因为当我创建一个圆(弧)时,我没有返回一个对象,而是一个 ID 号。如何使用此 ID 号创建事件绑定?
我建议不要使用 ID 号来创建事件绑定,而是使用标签系统来解决这个问题。创建椭圆形对象时,例如canvas.create_oval(100, 100, 200, 200)
,在括号内添加 ,tag="tag_name"
以将标签应用于您创建的对象。然后您可以显式绑定到此标记,例如使用 canvas.
的 tag_bind
函数
在创建带有标签 "oval":
的椭圆后,您可以创建这样的东西
canvas.tag_bind("oval", "<ButtonPress-1>", pressed_oval)
只有当用户点击您给标签 "oval" 的对象(并向其传递事件)时,才会调用您的函数 pressed_oval()
。
希望这能帮助您入门!
我会注意到要使 tag_bind
起作用,对象仍然必须在 canvas 上,所以不要将椭圆的状态更改为隐藏或打包忘记它们,只需切换椭圆填充在你的颜色和空之间(fill=""
)。
我正在使用 Tkinter 在 python 中编写一个简单的 noughts - and - crosses 游戏,并且希望仅当您将鼠标悬停在它们上方时才显示 Os。为此,我知道我需要添加一个事件绑定,但不知道如何添加,因为当我创建一个圆(弧)时,我没有返回一个对象,而是一个 ID 号。如何使用此 ID 号创建事件绑定?
我建议不要使用 ID 号来创建事件绑定,而是使用标签系统来解决这个问题。创建椭圆形对象时,例如canvas.create_oval(100, 100, 200, 200)
,在括号内添加 ,tag="tag_name"
以将标签应用于您创建的对象。然后您可以显式绑定到此标记,例如使用 canvas.
tag_bind
函数
在创建带有标签 "oval":
的椭圆后,您可以创建这样的东西canvas.tag_bind("oval", "<ButtonPress-1>", pressed_oval)
只有当用户点击您给标签 "oval" 的对象(并向其传递事件)时,才会调用您的函数 pressed_oval()
。
希望这能帮助您入门!
我会注意到要使 tag_bind
起作用,对象仍然必须在 canvas 上,所以不要将椭圆的状态更改为隐藏或打包忘记它们,只需切换椭圆填充在你的颜色和空之间(fill=""
)。