首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当使用模块tkinter中的create_oval()方法时,如何标记所绘制的每个圆圈?

当使用模块tkinter中的create_oval()方法时,如何标记所绘制的每个圆圈?
EN

Stack Overflow用户
提问于 2021-12-11 19:07:18
回答 2查看 215关注 0票数 0

在使用Python中的模块tkinter中的create_oval()方法时,如何标记绘制的每个圆圈?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-12-11 20:50:00

您必须手动创建一个单独的画布文本对象。

下面是一个将文本放置在圆圈中心的示例:

代码语言:javascript
代码运行次数:0
运行
复制
import tkinter as tk

WIDTH, HEIGHT = 200, 200

root = tk.Tk()

canvas = tk.Canvas(root, width=WIDTH, height=HEIGHT)
canvas.pack()

x0, y0, x1, y1 = 50, 50, 100, 100
canvas.create_oval(x0, y0, x1, y1, outline='black')

center_x, center_y = (x0+x1)/2, (y0+y1)/2
canvas.create_text(center_x, center_y, text='Label')

root.mainloop()

结果:

票数 1
EN

Stack Overflow用户

发布于 2021-12-11 20:56:33

没有内置的方法可以这样做,但是您可以使用圆圈的canvas.coords来定位标签:

下面是如何为左上角和右下角做这件事。只要对坐标进行更多的操作,您就可以将标签定位在其他角落、圆圈内、上面、下面或左&右。

代码语言:javascript
代码运行次数:0
运行
复制
import tkinter as tk

if __name__ == '__main__':

    root = tk.Tk()
    canvas = tk.Canvas(root, width=200, height=200, bg='cyan')
    canvas.pack()
    x0, y0, x1, y1 = 25, 25, 75, 75

    circle_A = canvas.create_oval(x0, y0, x1, y1)
    canvas.create_text(canvas.coords(circle_A)[:2], text='A')

    x0, y0, x1, y1 = 125, 125, 175, 175
    circle_B = canvas.create_oval(x0, y0, x1, y1)
    canvas.create_text(canvas.coords(circle_B)[2:], text='B')

    root.mainloop()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70318203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档