如何在 Tkinter 的 Canvas 文本上添加轮廓线?
Tkinter Canvas 小部件可以用于许多用途,例如在 Canvas 中添加图像、创建和绘制形状、使形状和对象动画等。通过使用 Canvas 中的内置函数和方法,我们可以创建并显示文本。
要创建文本,我们使用 create_text(x, y, text, **options) 方法。要在 Canvas 上的文本周围添加轮廓线,我们必须在文本周围创建边界框。边界框属性将不可见的框与小部件链接起来。这将允许我们在文本中放置一个矩形。
一旦我们创建了矩形,我们可以将其放在文本后面,并将文本置于矩形上方。必须给矩形指定一个轮廓线属性,以包围画布项目。
示例
# 导入所需库
from tkinter import *
# 创建一个 tkinter 窗口或框架实例
win=Tk()
# 设置窗口大小
win.geometry("700x350")
# 创建一个 Canvas 小部件
canvas=Canvas(win, bg="blue3")
canvas.pack()
# 在 Canvas 中创建一个文本
text=canvas.create_text(100,200, text="This works only in canvas",
font=('Calibri 18'), anchor="w", fill="white")
# 在文本周围创建边界框
bbox=canvas.bbox(text)
# 在边界框内创建一个矩形
rect=canvas.create_rectangle(bbox, outline="yellow",
fill="black", width=5)
# 将文本置于矩形上方
canvas.tag_raise(text,rect)
win.mainloop()
输出
如果我们运行以上代码,则会显示一个带有在 Canvas 上可见的预定义文本的窗口,文本周围将有轮廓线。