【问题标题】:Changing the colour on click of a tkinter rectangle on click in python在python中单击时更改单击tkinter矩形的颜色
【发布时间】:2015-08-11 01:05:36
【问题描述】:

所以我有这段代码可以绘制一个简单的矩形:

from tkinter import *

root = Tk()
canvas = Canvas(root, width = 500, height = 500)
canvas.pack()

canvas.create_rectangle(100, 100, 400, 400, fill='black')


mainloop()

现在我到处寻找,似乎根本找不到改变填充颜色的方法,理想情况下我希望能够在点击时做到这一点。

我实际上将使用它来更改由我编写的一个可以正常使用的函数生成的六边形的颜色

create_polygon()

但我想它与矩形的工作原理相同。

我意识到代码可能需要完全重组。

【问题讨论】:

    标签: python tkinter tkinter-canvas


    【解决方案1】:

    给它命名,然后通过itemconfig引用它,像这样:

    myrectangle = canvas.create_rectangle(100, 100, 400, 400, fill='black')
    canvas.itemconfig(myrectangle, fill='red')
    

    【讨论】:

    • 如果您只有几个矩形,那就太好了:但这不适用于许多形状 - 是否有替代方法不使用保存对矩形的引用的变量名?
    • @monojohnny 恐怕我不知道;我对 Tkinter 的经验有限。
    • 实际上 - 这不是重要的名称 - 它是对对象本身的引用 - 所以你的方法工作得很好 - 实际上我会说规模很好。 (我以为变量的名字很特别,但实际上它是变量指向的那个),干杯!
    • @monojohnny 您可以创建这些对象的列表,而不是为每个对象创建变量。通过这样做,稍后您可以使用此列表进行迭代并做任何您想做的事情。这会是更好的解决方案吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 2015-06-04
    • 2017-06-29
    • 2016-08-12
    • 2018-02-11
    • 2012-12-06
    • 1970-01-01
    相关资源
    最近更新 更多