Tkinter холст вложенных фигур, меняющих заливку на основе тегов - PullRequest
0 голосов
/ 15 ноября 2018

Итак, у меня есть две фигуры в 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)

Я не могу заполнить внутреннюю форму после того, как внешняя имеетбыл заполнен.Как бы я пошел по этому вопросу?Спасибо.

1 Ответ

0 голосов
/ 15 ноября 2018

Добавить начальную заливку: .create_rectangle (..., tag = "out", fill = 'white') - stovfl Спасибо stovfl за выяснение проблемы

...