如何去除 Tkinter 中的小部件边框?

tkinterpythongui-programming更新于 2026/2/9 17:48:17

Tkinter 带有不同类型的小部件,例如按钮、条目、框架、标签、单选按钮、滚动条等。小部件是显示信息或帮助用户与系统交互的标准图形用户界面 (GUI) 元素。

在此示例中,我们将了解如何去除画布、条目字段、标签和按钮的边框。

步骤 −

  • 导入所需的库并创建 tkinter 框架的实例。

  • 使用 root.geometry 方法设置框架的大小。

  • 接下来,创建一个画布并使用 "bd" 属性设置画布的边框宽度。然后,使用 "highlightthickness" 属性定义是否要显示画布边框。如果要删除画布边框,请设置 "highlightthickness=0"。

  • 再定义两个用户定义函数 start() 和 stop(),以控制 infinite_loop。定义一个全局变量 "condition"。在 start() 中,设置 condition=True,在 stop() 中,设置 condition=False。

  • 接下来,在 Canvas 中创建两个 Entry 字段。使用 borderwidth 属性设置一个 Entry 字段的边框。

  • 同样,创建两个标签,并使用 borderwidth 属性和 relief='solid' 在标签周围显示边框。

  • 接下来,创建两个按钮,并在一个按钮中设置 "borderwidth=0"。它将消除按钮周围的边框。

  • 最后,运行应用程序窗口的ma​​inloop。

示例


# 导入所需的库
from tkinter import *

# 创建 tkinter 框架的实例
root=Tk()

# 设置框架的几何形状
root.geometry("700x350")

# 创建画布小部件
canvas= Canvas(root, bd=2, highlightthickness=2)
canvas.pack(side=TOP, padx=10, pady=10)

# 创建 Entry 小部件
text=Entry(canvas, width=50)
text.insert(0, "Widget with border")
text.config(borderwidth=5)
text.pack(side=TOP, padx=10, pady=10)

# 创建无边框的 Entry 小部件
text=Entry(canvas, width=50)
text.insert(0, "Widget without border")
text.pack(side=TOP, padx=10, pady=10)

label1 = Label(canvas, text="Label with border", borderwidth=2, relief='solid', font="Calibri, 14")
label1.pack(side=BOTTOM, padx=10, pady=10)

label2 = Label(canvas, text="Label without border", borderwidth=0, font="Calibri, 14")
label2.pack(side=BOTTOM, padx=10, pady=10)

button1 = Button(root, text="Standard Button")
button1.pack(side=TOP, padx=10, pady=10)

button2 = Button(root, text="Button without Border", borderwidth=0)
button2.pack(side=TOP, padx=10, pady=10)

root.mainloop()

输出

执行时,将产生以下输出 −

观察 Canvas 小部件是否有边框。如果您在 Canvas 中设置属性 "highlightthickness=0",则它将不再显示周围的边框。

同样,我们有两个按钮,一个有边框,另一个没有边框。要删除 button 小部件中的边框,我们使用了参数 "borderwidth=0"。


相关文章


有用资源