Tkinter 更好的背景

Tkinter better backgrounds

I have managed to create this.

我正在使用具有不同阴影的椭圆形来创建它。

def Banner():
    canvas.create_oval(-300, 1600, 4000, 200, fill="gray38", outline="gray38", width=4)
    banner_label = Label (canvas, width=30, height=2, font=font3, text = "FITNESS FIRST", bg="gray30", fg = "white")
    canvas_banner_label = canvas.create_window(500, 200, window=banner_label)

但是我想知道是否无论如何我可以让椭圆形几乎优先,并重叠标签,使椭圆形在它前面,让图案一直可见

在 canvas 上使用 Label() 的问题是标签本身有自己的背景,并且始终与文本处于同一水平,因此您不能与 canvas 重叠文字后面的图像。但是 canvas 有一个名为 create_text 的方法,它将直接在 canvas 上绘制文本,而不是使用标签。

这里是一个使用 create_text 来实现 canvas 的例子。

create_text方法中,前两个参数是坐标,然后你只需要文本字体,填充颜色。

import tkinter as tk

root = tk.Tk()

canvas = tk.Canvas(root, width=800, height=650, bg="darkgrey")
canvas.create_oval(-300, 1600, 4000, 200, fill="gray38", outline="gray38", width=4)
canvas.create_text(400,325, text="FITNESS FIRST", font=("Purisa", 60),fill="white")

canvas.pack()
root.mainloop()

结果: