当我在全局范围内绘制一个矩形时:
c = Canvas(width=IMAGE_WIDTH, height=IMAGE_HEIGHT, bg='black')
c.create_rectangle([100, 100, 110, 110], fill='white')
c.pack()
root = Tk()
并通过在循环中绘制多个矩形来实现此目的
class gDrawer :
def __init__(self) :
self.rect_array = []
self.x = 0
self.y = 0
def incr_counter(self,c,event=None):
one_pixel_loc = [self.x, self.y, self.x+5, self.y+5]
self.rect_array.append(c.create_rectangle(one_pixel_loc, fill='white'))
self.x += 1
gd = gDrawer()
for xx in range(100) :
print xx
gd.incr_counter(c)
root.mainloop()
单个绘制的矩形停留在画布上,而循环绘制的矩形移动而不是创建矩形轨迹。我想绘制一条长方形而不是移动的长方形,所以这里发生了什么?
答案 0 :(得分:4)
rectangle
大纲的默认颜色为black
。这使得当它们的轮廓刚刚重叠时,似乎没有绘制其他矩形。
尝试更改:
self.rect_array.append(c.create_rectangle(one_pixel_loc, fill='white'))
到此:
self.rect_array.append(c.create_rectangle(one_pixel_loc, fill='white', outline='white')
不确定这是否正是您正在寻找的,希望它有所帮助。