【问题标题】:Tkinter - How To Get Tag Name from Clicking on RectangleTkinter - 如何通过单击矩形获取标签名称
【发布时间】:2021-03-27 12:06:11
【问题描述】:

我对编程还很陌生,所以请原谅任何不一致/错误使用代码)

我已经看到了一些关于这个主题的类似问题和答案,但是我觉得我可能遗漏了一些东西。

我画了一个魔方网,我希望用户能够点击一个单独的“魔方”来改变它的颜色,这样它就可以过滤 6 种颜色。 基本上,我想弄清楚的是如何从 tag_bind 方法访问矩形的标签。

这是我使用的代码的简化版本:

def clicked(event):
    print("You clicked " + str(event))
    print(event.widget.find_withtag("current"))


green_00 = cubeCanvas.create_rectangle(20, 240, 90, 310, width=0, fill='green', tag="green_00")
cubeCanvas.tag_bind("green_00", "<Button-1>", clicked)

目前返回:

You clicked <ButtonPress event num=1 x=56 y=299>
(1,)

而理想情况下我希望它返回:

green_00

然后目标是使用标签来识别 itemconfig 中的矩形 - 这样我就可以更改颜色。 非常感谢任何解决此问题的答案/更好的方法。

谢谢。

【问题讨论】:

  • current = event.widget.find_withtag("current")[0] 然后你可以做event.widget.itemconfig(current, *option)。我不知道你为什么在这里需要帮助?
  • 或者您在搜索event.widget.itemcget(current, *option)
  • @Atlas435 - 您的解决方案有效,谢谢。感谢您的帮助!

标签: python tkinter click tk rubiks-cube


【解决方案1】:

感谢 Atlas435 - 我错过了一些非常小的东西。

current = event.widget.find_withtag("current")[0]
event.widget.itemconfig(current, *option)

允许您访问然后更改特定标签的颜色。

【讨论】:

    猜你喜欢
    • 2014-12-02
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多