在python Tkinter画布上绘制覆盖整个画布的矩形不会在顶部和左侧显示边框

在python Tkinter画布上绘制覆盖整个画布的矩形不会在顶部和左侧显示边框,python,tkinter,Python,Tkinter,我试图在Tkinter(Python2.7)画布中创建一个与画布尺寸相同的矩形。以下是守则的相关部分: self.canvas = Canvas(self, width=100, height=100, backround="yellow") self.canvas.create_rectangle(0,0,100,100) 这画了一个矩形,但我看不到矩形的左边框和上边框。如果我从5,5开始,而不是从0,0开始,我可以看到矩形的边界。关于为什么会发生这种情况,以及我如何避免这种情况,有什么想法

我试图在Tkinter(Python2.7)画布中创建一个与画布尺寸相同的矩形。以下是守则的相关部分:

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

这画了一个矩形,但我看不到矩形的左边框和上边框。如果我从5,5开始,而不是从0,0开始,我可以看到矩形的边界。关于为什么会发生这种情况,以及我如何避免这种情况,有什么想法吗?

不幸的是,画布边框包含在可绘制区域中。尝试在画布上将
borderwidth
highlightthickness
属性设置为零


您还需要将矩形的坐标调整为99,因为计数从零开始(如果宽度为100,坐标从0到99)

这是正确的。要添加到您的答案中,画布的边框通常默认设置为1像素,因此通过将左上角设置为
(0,0)
,矩形的边框将与无法绘制的画布边框相同,因为它们位于画布坐标系内(您无法在其占用的空间中绘制)。因此,如果OP希望保持默认状态,他可以根据边框的大小将左上角移动到坐标系,这意味着他必须键入
(1,1)
,而不是
(0,0)
,并且指令
w.create_矩形(1,1100,100)
有效。将
borderwidth
highlightthickness
设置为0对我来说很有效。但是,正如您已经提到的,这导致右侧和底部轮廓在画布外渲染,因为我的坐标偏离了1(即它们应该是(99,99)而不是(100100)