2016-06-11 69 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