Как мне накладывать виджеты в Tkinter (создавать фигуры перед изображением)? - PullRequest
0 голосов
/ 25 октября 2019

Я пытаюсь нарисовать фигуры перед изображением, но я их не вижу - они стоят за этим. Как сделать так, чтобы изображение возвращалось назад к слою / фигуры перемещались по слою? Вот мой код:

photo = PhotoImage(file='Alveoli.ppm')
        img = Label(tk, image=photo)
        img.image = photo 
        img.place(x=0, y=0)
        oc = canvas.create_oval(0, 0, 400, 400, fill = 'red')

@ Philipp После использования tag_raise он по-прежнему выглядит следующим образом (изображение слева): enter image description here

Ответы [ 2 ]

0 голосов
/ 25 октября 2019

Нельзя накладывать элементы холста поверх встроенных виджетов. Если вы хотите нарисовать поверх изображения, изображение должно быть объектом canvas, созданным с помощью create_image.

Как только вы это сделаете, вы можете использовать методы холста lift и lower, чтобы изменить порядок расположения (z-index) элемента.

photo = PhotoImage(file='Alveoli.ppm')
canvas.create_image(0, 0, image=photo, anchor="nw")
oc = canvas.create_oval(0, 0, 400, 400, fill = 'red')
0 голосов
/ 25 октября 2019

Вы должны быть в состоянии использовать этот метод: tag_raise()

, который в вашем случае должен выглядеть следующим образом:

canvas.tag_raise(oc)

...