专家你好:
我近半个月来一直想解决,对象显示顺序的问题,由于默认情况下,新创建的会覆盖旧的对象重叠部分,但有时候需要让新创建的对象在下面,该如何弄啊。
简单来与,就像下面,如何让最早创建的圆显示在最新创建线的上面。
tk=Tk()
canvas=Canvas(tk,width=600,height=400,bg='snow',relief='sunken')
canvas.pack()
oval1=canvas.create_oval(10,70,100,160,activefill='blue',width=10)
line1=canvas.create_line(10, 10, 400, 500, activefill='red',width=5)
canvas将后边所画图形覆盖前边所画图形,其有4个函数可以改变所有图形覆盖关系,它们是:tag_raise(item)、tag_lower(item)、lift(item, **options)和lower(item, **options),其中item 可以是单个画布对象的 ID,也可以是某个 Tag,可将指定画布对象移动到显示列表的顶部或底部
将绘图指令按顺序存入列表。每当有新指令加入时,清空Canvas,然后逆序重绘。
你可以试试在创建线后迅速重绘最早创建的圆