簡體   English   中英

如何在 Tkinter 中分層小部件(在圖像前面制作形狀)?

[英]How do I layer widgets in Tkinter (make shapes in front of image)?

我正在嘗試在圖像前面繪制形狀,但我看不到它們 - 它們在圖像后面。 我如何使圖像 go 回到一層/形狀 go 向前一層? 這是我的代碼:

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后它仍然看起來像這樣(img 在左側): 在此處輸入圖像描述

只需使用widget.tkraise(aboveThis=ob)

如果您希望小部件高於所有其他小部件,請使用widget.tkraise()

你應該可以使用這個方法: tag_raise()

在你的情況下應該是這樣的:

canvas.tag_raise(oc)

您不能將 canvas 項目覆蓋在嵌入式小部件之上。 如果要在圖像上繪制,圖像必須是使用create_image創建的 canvas object 。

完成此操作后,您可以使用 canvas 方法liftlower來更改項目的堆疊順序(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')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM