有没有办法更新这些画布的颜色?

时间:2018-08-07 18:46:50

标签: python-3.x tkinter tkinter-canvas

row1a = Canvas(firstFrame,width=54,height=54,bg="gray")
row1a.pack(side=LEFT)
row1b = Canvas(firstFrame,width=54,height=54,bg="gray40")
row1b.pack(side=LEFT)
row1c = Canvas(firstFrame,width=54,height=54,bg="gray")
row1c.pack(side=LEFT)
row1d = Canvas(firstFrame,width=54,height=54,bg="gray40")
row1d.pack(side=LEFT)
row1e = Canvas(firstFrame,width=54,height=54,bg="gray")
row1e.pack(side=LEFT)
row1f = Canvas(firstFrame,width=54,height=54,bg="gray40")
row1f.pack(side=LEFT)
row1g = Canvas(firstFrame,width=54,height=54,bg="gray")
row1g.pack(side=LEFT)

row = 1
column = b

有没有一种方法可以使用canvas.config(bg =“ blue”)之类的东西来更新“ row1b”画布的颜色。
这些画布有很多,所以我不能为每个画布真正使用row1b.config(bg =“ blue”)。 谢谢!

1 个答案:

答案 0 :(得分:0)

与任何小部件一样,创建后可以更改其选项。

由于要创建许多画布,所以最好的解决方案是将它们存储在列表或字典中。由于您似乎想用数字和字母来引用它们,因此词典可能是最好的解决方案。

例如,要循环创建画布对象,您可以执行以下操作:

    createThingFormData: {},
    createThingFormErrors: {},
    createThingFormRules: {
     thingName: { required: true },
    }

稍后,您可以通过canvases = {} row = 1 for column in ('a', 'b', 'c', 'd', 'e', 'f', 'g'): index = (row, column) canvases[index] = Canvas(...) 字典和canvases命令更改任何单一画布的颜色:

configure