python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python Tkinter Label

Python Tkinter Label 使用步骤示例详解

作者:贾宝不是玉

Tkinter的Label是用于显示文本、图像或同时显示图文的基础组件,不可直接编辑,常用来展示提示信息、标题、静态内容等,是 GUI 界面中最常用的组件之一,本文介绍Python Tkinter Label使用步骤,感兴趣的朋友跟随小编一起看看吧

前言

Tkinter 的 Label 是用于显示文本、图像或同时显示图文的基础组件,不可直接编辑,常用来展示提示信息、标题、静态内容等,是 GUI 界面中最常用的组件之一。

一、核心使用步骤(基础示例)

使用 Label 需遵循导入模块→创建主窗口→实例化 Label→布局显示的核心流程

# 1. 导入tkinter模块(Python3 统一为tkinter,Python2为Tkinter)
import tkinter as tk
# 2. 创建主窗口对象(GUI程序的根容器)
root = tk.Tk()
root.title("Label基础使用")  # 设置窗口标题
root.geometry("300x200")     # 设置窗口大小:宽x高(像素)
# 3. 实例化Label组件,绑定到主窗口
# 最基础用法:指定父容器(master)和显示文本(text)
label = tk.Label(
    master=root,  # 必选:指定Label所属的父容器(此处为主窗口root)
    text="Hello Tkinter Label!"  # 核心参数:要显示的文本
)
# 4. 布局显示Label(关键:tkinter组件必须通过布局管理器显示,否则不可见)
label.pack()  # 简单布局,自动居中适配
# 5. 启动主事件循环(让窗口保持运行,等待用户操作)
root.mainloop()

二、Label 核心常用参数

参数作用示例
master必选,指定父容器(窗口 / 框架 Frame 等)master=root
text显示的文本内容,支持\n换行text=“第一行\n第二行文本”
font字体配置,格式(字体名, 字号, 样式),样式可选bold(粗体)/italic(斜体)font=(“微软雅黑”, 12, “bold”)
fg前景色(文本颜色),支持英文色名 / 十六进制fg=“red” 或 fg=“#FF0000”
bg背景色(Label 组件的底色)bg=“lightgray” 或 bg=“#F5F5F5”
width组件宽度,文本组件按字符数计算,图像组件按像素width=20(显示 20 个字符宽度)
height组件高度,文本组件按字符行数计算,图像组件按像素height=3(显示 3 行字符高度)
anchor内容对齐方式,基于方位词:N (上)、S (下)、E (右)、W (左)、CENTER (中),可组合(如 NE = 右上)anchor=“w”(左对齐)
padx/pady组件内边距,x/y 方向的空白区域(像素),避免内容贴边padx=10, pady=5
image显示的图像,需配合PhotoImage加载(支持 png/gif,不直接支持 jpg,需额外处理)显示图像」示例
compound图文混排时的位置,可选:left/right/top/bottom/center(图像在文本的对应方位)compound=“left”(图像在左,文本在右)

三、tkinter 三种布局管理器(Label 显示必备)

tkinter 组件(包括 Label)必须通过布局管理器添加到父容器,否则不会显示,核心有 3 种布局,各有适用场景:

  1. pack ():简单快速,自动适配
    适用场景:快速布局、组件上下 / 左右排列,无需精确控制位置
# 两个Label上下排列,左对齐
label1 = tk.Label(root, text="第一个Label", fg="blue")
label2 = tk.Label(root, text="第二个Label", fg="green")
label1.pack(anchor="w", padx=10, pady=5)  # 左对齐,x/y内边距
label2.pack(anchor="w", padx=10)
  1. grid ():网格布局,精确行列控制
    适用场景:需要按「行 + 列」精确排列组件(如表单、数据展示),支持跨行 / 跨列。
    核心参数:row(行号,从 0 开始)、column(列号,从 0 开始)、rowspan(跨行数)、columnspan(跨列数)。
# 3行2列的Label网格,带内边距
tk.Label(root, text="行0列0", bg="pink").grid(row=0, column=0, padx=5, pady=5)
tk.Label(root, text="行0列1", bg="pink").grid(row=0, column=1, padx=5, pady=5)
tk.Label(root, text="行1列0(跨2列)", bg="lightblue").grid(row=1, column=0, columnspan=2, padx=5, pady=5)
tk.Label(root, text="行2列0", bg="lightgreen").grid(row=2, column=0, padx=5, pady=5)
tk.Label(root, text="行2列1", bg="lightgreen").grid(row=2, column=1, padx=5, pady=5)
  1. place ():绝对定位,精确坐标控制
    适用场景:需要按「像素坐标」精确控制组件位置,适合定制化界面(缺点:窗口缩放时组件位置不会自动适配)。
    核心参数:x(距父容器左边界的像素)、y(距父容器上边界的像素)、relx/rely(相对坐标,0~1,基于父容器大小)。
# 绝对坐标:x=50,y=30;相对坐标:relx=0.5(水平居中),rely=0.6(垂直60%位置)
label1 = tk.Label(root, text="绝对定位(50,30)", bg="yellow")
label2 = tk.Label(root, text="相对定位(居中)", bg="orange")
label1.place(x=50, y=30)  # 绝对坐标
label2.place(relx=0.5, rely=0.6, anchor="center")  # 相对坐标+居中对齐

四、进阶用法:显示图像 / 图文混排

  1. 仅显示图像(支持 png/gif)
    tkinter 内置 PhotoImage 用于加载图像,注意:变量需保持引用(不可匿名),否则图像会被垃圾回收导致不显示:
import tkinter as tk
root = tk.Tk()
root.title("Label显示图像")
# 加载图像(支持png/gif,路径可为绝对路径/相对路径)
# 关键:img变量必须保留,不能写成 tk.PhotoImage(file="logo.png")
img = tk.PhotoImage(file="logo.png")  # 替换为你的图像路径
# 实例化Label,指定image参数
img_label = tk.Label(root, image=img, width=100, height=100)
img_label.pack(pady=20)
root.mainloop()
  1. 图文混排(图像 + 文本)
    通过 compound 参数控制图像和文本的相对位置,结合 text 和 image 参数实现:
import tkinter as tk
root = tk.Tk()
root.title("Label图文混排")
# 加载图像
img = tk.PhotoImage(file="icon.png")
# 图文混排:图像在左,文本在右,字体加粗,带内边距
mix_label = tk.Label(
    root,
    image=img,
    text="Python Tkinter\n图文混排示例",
    font=("宋体", 11, "bold"),
    compound="left",  # 图像在左,可选:right/top/bottom/center
    padx=10,
    pady=8,
    fg="#333333"
)
mix_label.pack()
root.mainloop()

到此这篇关于Python Tkinter Label 使用的文章就介绍到这了,更多相关Python Tkinter Label 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文