如何在画布初始启动时设置tkinter画布元素(圆形,矩形)的z-index?或者我可以在绘图时直接设置z-index一个圆圈?不幸的是,我对canvas.tag_lower("tag_name")
所做的工作不多。我以为这个命令会将标签的所有元素都移回一级-是这样吗?
class CanvasGui(tk.Canvas):
def __init__(self, master):
super().__init__(master, bg="#FFF", highlightthickness=0, borderwidth=0)
self.pack(fill="both", expand=True)
self.setCanvasLayers()
def setCanvasLayers(self):
self.tag_lower("highlightGridPoint")
self.tag_lower("grid")
[我认为,标记为“ highlightGridPoint”的元素现在应该位于最远的背景中,标记为“ grid”的元素应该位于最远的背景中。但是,如果我运行该程序,就不是这样...
您必须先创建标签,然后才能设置标签的顺序。您的代码会升高和降低尚不存在的标签。
您可以通过注意到此代码之间的行为差异来看到这一点:
canvas.setCanvasLayers()
canvas.create_rectangle(10,10,50,50, fill="red", tags=("red",))
canvas.create_rectangle(20,20,60,60, fill="green", tags=("green",))
...和此代码:
canvas.create_rectangle(10,10,50,50, fill="red", tags=("red",))
canvas.create_rectangle(20,20,60,60, fill="green", tags=("green",))
canvas.setCanvasLayers()