簡體   English   中英

使用Tkinter為2d數組的每個像元創建矩形

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM