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

Tkinter中使用canvas.create_oval绘制的椭圆能否添加文本标签?

实现方法

可以实现,你可以通过create_text方法在椭圆对应位置绘制文本标签即可。
你绘制的椭圆基于外接矩形左上角(x1,y1)、右下角(x2,y2)生成,只需要先计算出椭圆的中心坐标,再在对应位置绘制文本即可。如果需要文本和椭圆作为整体移动/修改,可以给两个元素绑定相同的标签统一管理。

可运行示例代码

import tkinter as tk

# 基础参数配置
width = 400
height = 300
x1, y1, x2, y2 = 100, 100, 250, 180

window = tk.Tk()
canvas = tk.Canvas(window,
              width=width,
              height=height,
              bg='black')
# 绘制椭圆,绑定自定义标签方便后续统一操作
oval = canvas.create_oval(x1, y1, x2, y2, fill='red', tag="target_oval")
# 计算椭圆中心坐标
center_x = (x1 + x2) / 2
center_y = (y1 + y2) / 2
# 绘制文本标签,fill设置文本颜色,font可自定义字体和大小,同样绑定相同标签
text = canvas.create_text(center_x, center_y, text="椭圆标签", fill="white", font=("微软雅黑", 12), tag="target_oval")

# 示例:如果需要整体移动椭圆和标签,直接操作标签即可
# canvas.move("target_oval", 20, 20)
# 如果后续动态修改椭圆位置,更新后重新计算中心坐标,调用下面方法更新文本位置即可
# canvas.coords(text, new_center_x, new_center_y)

canvas.pack()
window.mainloop()

如果需要标签放在椭圆外侧,仅需调整create_text的坐标参数即可,不需要和椭圆中心重合。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 03:15:02