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()
结果:
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()
结果: