Tkinter更好的背景

时间:2018-06-21 16:11:16

标签: python tkinter background tkinter-canvas

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)

但是我想知道是否仍然可以使椭圆形几乎占据优先地位,并重叠Label以使椭圆形位于其前面,从而使图案在整个过程中都可见

1 个答案:

答案 0 :(得分:1)

在画布上使用Label()的问题是标签本身具有自己的背景,并且始终与文本处于同一级别,因此您不能在文本后面重叠画布图像。但是canvas具有一种称为create_text的方法,该方法将直接在画布上绘制文本,而不使用标签。

以下是使用create_text进行画布的示例。

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()

结果:

enter image description here