2016-06-11 68 views
1

我想在與畫布相同的Tkinter(Python 2.7)畫布內創建矩形。這裏是代碼的相關部分:在python上繪製矩形Tkinter畫布覆蓋整個畫布,不會在頂部和左側顯示邊框

self.canvas = Canvas(self, width=100, height=100, backround="yellow") 
self.canvas.create_rectangle(0,0,100,100) 

這繪製一個矩形,但我看不到矩形的左邊界和上邊界。如果我從5,5而不是0,0開始矩形,我可以看到矩形的邊框。任何想法爲什麼發生這種情況,以及我如何解決它?

回答

2

不幸的是,畫布邊框包含在可繪製區域中。嘗試在畫布上將borderwidthhighlightthickness屬性設置爲零。

由於計數從零開始(如果寬度爲100,座標從0到99),您還需要將矩形的座標調整爲99,以結束。

+0

這是正確的。要添加到答案中,Canvas的邊框通常默認設置爲1像素,因此通過將左上角設置爲'(0,0)',矩形的邊框將與Canvas中的邊框相同由於它們坐在畫布座標系內(不能繪製它佔據的空間),所以無法繪製。因此,如果OP想要使事情保持默認狀態,他可以通過邊界的大小將左上角移動到座標系統,這意味着他必須鍵入'(1,1)'而不是'(0, 0)'和指令'w.create_rectangle(1,1,100,100)'是有效的。 –

+0

將'borderwidth'和'highlightthickness'都設置爲0對我有用。但是,正如您已經提到的那樣,由於我的座標偏離1(即它們應該是(99,99)而不是(100,100)),所以右側和底部輪廓會在畫布外呈現, – Sid