You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Tkinter窗口的指定位置(x=400,y=150)显示文本?

解决Tkinter指定坐标显示文本的问题

问题根源

  • Label组件没有goto()方法,这个方法是Canvas对象的专属方法;
  • 使用grid()布局时,组件位置由网格行列规则控制,无法直接通过坐标定位。

方案一:用Canvas直接创建文本(最推荐)

既然卡片图片是在Canvas中加载的,直接利用Canvas的create_text()方法添加文本,既能精准指定坐标,又能让文本和图片处于同一画布层级,逻辑更合理。

修改后的核心代码:

canvas = Canvas(width=800, height=526, bg=BACKGROUND_COLOR, highlightthickness=0)
card_front = PhotoImage(file='images/card_front.png')
canvas.create_image(400, 263, image=card_front)
# 直接在Canvas上创建指定坐标的文本
canvas.create_text(400, 150, text="French", font=("Ariel", 40, "italic"), fill="black")
canvas.grid(row=0, column=1, columnspan=2)

注:删除原来的text_1 Label相关代码即可,无需额外组件。


方案二:Label配合place布局(若坚持用Label组件)

将Label的父组件设为Canvas,再用place()布局直接指定坐标,同时设置anchor="center"让文本中心对齐目标坐标:

修改后的核心代码:

canvas = Canvas(width=800, height=526, bg=BACKGROUND_COLOR, highlightthickness=0)
card_front = PhotoImage(file='images/card_front.png')
canvas.create_image(400, 263, image=card_front)
canvas.grid(row=0, column=1, columnspan=2)

# 把Label的父组件设为Canvas,用place定位
text_1 = Label(canvas, text="French", bg='white', font=("Ariel", 40, "italic"), fg='black')
text_1.place(x=400, y=150, anchor="center")

内容的提问来源于stack exchange,提问作者PolymathCarlos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 22:40:44