所以我在tkinter python3.0中有两种形状,一种形状包含在另一种形状内。我给了他们两个不同的标签。单击时,我要填充选定的形状,颜色根据项目的标签而不同。
尝试此操作后,我发现如果先填充内部形状,则可以很好地填充外部形状。但是,如果我做相反的操作并首先填充外部形状,则由于某种原因我将无法填充内部形状。我尝试做tag_lower()和tag_raise(),但它们什么都没改变。
下面是代码:
from tkinter import *
root = Tk()
canvas = Canvas(root,width=200,height=200,bg="white")
canvas.grid()
firstRect = canvas.create_rectangle(10,10,30,30, tag="in")
secondRect = canvas.create_rectangle(15,15,25,25, tag="out")
def onclick(event):
item = canvas.find_closest(event.x, event.y)
tags = canvas.gettags(item)
if tags[0] == "in":
canvas.itemconfig(item, fill="red")
else:
canvas.itemconfig(item, fill="blue")
canvas.bind('<Button-1>', onclick)
填充外部形状后,我无法填充内部形状。我将如何处理这个问题?谢谢。
答案 0 :(得分:0)
添加初始填充:.create_rectangle(...,tag =“ out”,fill ='white')– stovfl 感谢stovfl找出问题所在