canvas.create_text 在图像下方而不是顶部显示文本

问题描述 投票:0回答:2

这是我的代码 - 我正在尝试创建_文本并将其放置在图像上,但是在运行代码时,即使我在位置 0,0 创建它,我也只能看到它出现,位置 400,263 处的其他文本不会显示(因为它分层在图像下方)

window = Tk()
window.title("Flash Card")
window.config(pady=50, padx=50, background=BACKGROUND_COLOR)

canvas = Canvas(width=800, height=526)
french_background = PhotoImage (file ="images/card_front.png")
canvas.create_image(400, 263, image=french_background)
canvas.create_text(0, 0, text="French", fill= "black" , font=("Ariel", 40, "italic"))
canvas.create_text(400,263, text=random_french, fill="black", font=("Ariel",60,"bold"))
canvas.config(bg=BACKGROUND_COLOR, highlightthickness=0)
canvas.grid(row=0, column=0, columnspan=2)

output of the code on my end

python tkinter canvas
2个回答
0
投票

canvas.create_text 在图像下方而不是顶部显示文本。

我正在尝试创建文本并将其放在图像上,但是在运行时 如果我在适当的位置创建它,我只能看到它甚至出现的代码 0,0,位置 400,263 处的其他文本不显示(因为它 分层在图像下方)

可以通过将字体大小减小到 40 和 30 来解决该问题。并将 canvas.create_text 坐标设置为

canvas.create_text(120, 30,...)
而不是
canvas.create_text(0, 0, ...)

片段:

from tkinter import *

window = Tk()
window.title("Flash Card")
window.config(pady=50, padx=50, background='green')

canvas = Canvas(width=800, height=526)
french_background = PhotoImage (file ="p2.png")
canvas.create_image(400, 263, image=french_background)
canvas.create_text(120, 30, text="French", fill= "black" , font=("Ariel", 40, "italic"))
canvas.create_text(400,263, text='random_french', fill="yellow", font=("Ariel",30,"bold"))
canvas.config(bg='red', highlightthickness=0)
canvas.grid(row=0, column=0, columnspan=2)

window.mainloop()

截图:


-1
投票

canvas.create_text
 之后使用 
canvas.grid

canvas.grid(row=0, column=0, columnspan=2)

canvas.create_text(0, 0, text="French", fill= "black" , font=("Ariel", 40, "italic"))

canvas.create_text(400,263, text=random_french, fill="black", font=("Ariel",60,"bold"))
© www.soinside.com 2019 - 2024. All rights reserved.