【问题标题】:Tkinter bind to arcTkinter 绑定到弧
【发布时间】:2017-05-06 18:30:37
【问题描述】:

我正在使用 Tkinter 在 python 中编写一个简单的 noughts-and-crosses 游戏,并且希望仅当您将鼠标悬停在它们上方时才显示 Os。为此,我知道我需要添加一个事件绑定,但不知道怎么做,因为当我创建一个圆(弧)时,我没有返回一个对象,而是一个 ID 号。如何使用此 ID 号创建事件绑定?

【问题讨论】:

    标签: python events tkinter binding graphic


    【解决方案1】:

    我建议不要使用 ID 号来创建事件绑定,而是使用标签系统来解决这个问题。创建椭圆形对象时,例如canvas.create_oval(100, 100, 200, 200),在括号内添加 ,tag="tag_name" 以将标签应用于您创建的对象。然后,您可以显式绑定到此标记,例如使用画布的 tag_bind 函数。

    在创建一个带有“椭圆”标签的椭圆之后,您可以创建类似的东西:

    canvas.tag_bind("oval", "<ButtonPress-1>", pressed_oval)
    

    只有当用户点击你给标签“椭圆”的对象(并将事件传递给它)时,这才会调用你的函数pressed_oval()

    希望这可以帮助您入门!

    我会注意到,要使tag_bind 起作用,对象仍然必须在画布上,因此不要将椭圆的状态更改为隐藏或打包忘记它们,只需在颜色之间切换椭圆填充即可(fill="")。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-15
      • 1970-01-01
      • 1970-01-01
      • 2016-02-04
      • 1970-01-01
      • 2011-04-07
      • 1970-01-01
      相关资源
      最近更新 更多