Я использую овал с другим оттенком, чтобы создать это.
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()
на холсте заключается в том, что сам ярлык имеет свой собственный фон и всегда будет на том же уровне, что и текст, чтобы вы не могли наложить свое изображение на холст за текстом. Однако у холста есть метод, называемый create_text
который будет рисовать текст непосредственно на холсте, а не с помощью метки.
Вот пример использования create_text
для холста.
В методе create_text
первые 2 аргумента являются координатами, тогда вам нужен только текст, а fill - цвет.
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()
Результаты: