label = tk.Label(root, text="你好,Tkinter!", font=("Arial", 20))
tk.Label()
: 创建标签组件
root
: 指定父容器(主窗口)text
: 设置显示的文本内容font
: 设置字体和大小(格式:(字体名, 字号))label.pack(pady=20)
.pack()
: 使用pack布局管理器放置组件
pady=20
: 设置组件在垂直方向上的外边距为20像素除了基础的text
和font
,Label还支持以下常用属性:
属性 | 说明 | 示例 |
---|---|---|
bg |
背景色 | bg="lightblue" |
fg |
文字颜色 | fg="red" |
width |
宽度(字符单位) | width=20 |
height |
高度(行数) | height=2 |
borderwidth |
边框宽度 | borderwidth=2 |
relief |
边框样式 | relief="ridge" |
示例:
tk.Label(root,
text="多彩标签",
bg="yellow",
fg="blue",
font=("楷体", 16),
borderwidth=2,
relief="groove").pack()
Label的内容可以通过config()
方法实时更新:
counter = 0
def update_label():
global counter
counter += 1
label.config(text=f"计数: {counter}")
root.after(1000, update_label) # 每秒更新一次
label = tk.Label(root, text="初始文本")
label.pack()
update_label() # 开始更新
from tkinter import PhotoImage
img = PhotoImage(file="python-logo.png")
tk.Label(root, image=img).pack()
def open_link():
import webbrowser
webbrowser.open("https://www.python.org")
link = tk.Label(root,
text="访问Python官网",
fg="blue",
cursor="hand2")
link.pack()
link.bind("", lambda e: open_link())
tk.Label(root, text="上边距30", bg="pink").pack(pady=30)
tk.Label(root, text="左右边距50", bg="lightgreen").pack(padx=50)
tk.Label(root, text="上下左右边距", bg="cyan").pack(padx=10, pady=10)
tk.Label(root, text="左对齐", bg="yellow").pack(anchor="w") # west
tk.Label(root, text="居中对齐", bg="lightblue").pack() # 默认center
tk.Label(root, text="右对齐", bg="pink").pack(anchor="e") # east
import tkinter as tk
root = tk.Tk()
root.title("Label功能演示")
root.geometry("400x300")
# 基础Label
tk.Label(root,
text="主标题",
font=("黑体", 24),
fg="white",
bg="navy").pack(fill="x", pady=10)
# 动态Label
num = 0
def update():
global num
num += 1
dynamic_label.config(text=f"动态数值: {num}")
root.after(1000, update) # 每秒更新
dynamic_label = tk.Label(root, font=("Arial", 14))
dynamic_label.pack(pady=10)
update()
# 多属性Label
tk.Label(root,
text="属性大全演示",
bg="lightyellow",
fg="darkred",
font=("宋体", 12, "italic"),
borderwidth=2,
relief="ridge",
padx=20,
pady=10).pack(pady=20)
root.mainloop()
Q: 为什么我的Label不显示? A: 检查是否漏掉了.pack()
/.grid()
/.place()
布局方法
Q: 如何让Label自动换行? A: 使用wraplength
属性:
tk.Label(root,
text="这是一段很长的文本..."*5,
wraplength=150).pack()
Q: 如何让Label宽度填满窗口? A: 使用fill
参数:
tk.Label(root, text="填满宽度", bg="lightblue").pack(fill="x")