[英]Using Tkinter to create rectangles for each cell of a 2d array
我创建了一个二维数组,如下所示:
a, b = 150, 150;
density = .5
def RedOrGreen():
c = random.uniform(0,1)
if c > density:
d = "GREEN"
else:
d = "RED"
return d
Matrix = [[RedOrGreen() for x in range(a)] for y in range(b)]
我想使用tkinter创建一个内部有很多正方形的正方形。 这些正方形由我的2d数组表示。 我想根据2d数组中的值使它们变为绿色或红色。 我尝试通过遍历2d数组并创建如下矩形来实现此目的:
self.forest = tk.Canvas(self, width = 500, height = 500)
for x in range(a):
for y in range(b):
self.forest.create_rectangle(x,y,x+1,y+1, fill = Matrix[x][y])
self.forest.pack()
为了简单起见,我省略了一些代码,但是您可以在此处查看整个代码: https : //repl.it/repls/WindingUnwelcomeLibrary
但是,此解决方案不起作用。 我不确定为什么它不起作用,因为在我的头上,我遍历2d数组,然后创建一个相应的矩形。 如果您有任何想法请告诉我。
编辑:它不起作用的原因是因为它仅显示黑色画布。 它没有用我想要的颜色正确填充矩形。 我没有在repl.it上运行它,只是在那里显示完整的代码。
每个rectangle
都有黑色边框,可隐藏其他矩形。 最后,您只有黑色的画布。
您必须使用width=0
删除边框
self.forest.create_rectangle(x, y, x+1, y+1, fill=Matrix[x][y], width=0)
Doc: 画布
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.