如何在 Tkinter 上的画布文本上添加轮廓?

tkinterpythongui-programming更新于 2025/9/14 16:12:17

Tkinter Canvas 小部件可用于多种用途,例如添加图像、在画布中创建和绘制形状、为形状和对象设置动画等。使用 Canvas 内置函数和方法,我们可以创建和显示文本。

要创建文本,我们使用 create_text(x,y, text, **options) 方法。要在 Canvas 中的文本周围添加轮廓,我们必须在文本周围创建边界框。边界框属性将不可见的框与小部件链接起来。而且,这将允许我们在文本中放置一个矩形。

创建矩形后,我们可以将其拉到后面,并使文本位于矩形上方。必须为矩形赋予一个围绕画布项的轮廓属性。

示例

# 导入所需的库
from tkinter import *

# 创建 tkinter 框架或窗口的实例
win=Tk()

# 设置窗口的大小
win.geometry("700x350")

# 创建画布小部件
canvas=Canvas(win, bg="blue3")
canvas.pack()

# 在画布中创建文本
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()

输出

如果我们运行上面的代码,它将在画布中显示一个带有预定义文本的窗口。文本将在画布上显示轮廓。


相关文章


有用资源