[英]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.