news 2026/5/30 15:55:59

Python Tkinter Label 使用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python Tkinter Label 使用

前言

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

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

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

# 1. 导入tkinter模块(Python3 统一为tkinter,Python2为Tkinter)importtkinterastk# 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 用于加载图像,注意:变量需保持引用(不可匿名),否则图像会被垃圾回收导致不显示:
importtkinterastk 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 参数实现:
importtkinterastk 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/centerpadx=10,pady=8,fg="#333333")mix_label.pack()root.mainloop()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/30 8:08:14

【Nmap 设备类型识别技术】整体概况

深入解构 Nmap 设备类型识别技术:源码级硬核解析与实战指南 摘要:本文档将以 Nmap 7.98 (DEV) 源码为基准,深入剖析 Nmap 设备类型识别(Device Type Identification)的底层原理。不同于网络上泛泛而谈的教程&#xff0…

作者头像 李华
网站建设 2026/5/30 13:47:36

单连杆和二连杆系统计算力矩法控制simulink仿真

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

作者头像 李华
网站建设 2026/5/22 8:05:10

SharedPtr测试步骤说明

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录一、前置准备1. 带行号的测试代码2. 核心规则(对应我们的 SharedPtr 实现)二、逐行执行解析行1:打印标题行2:构造sp1&…

作者头像 李华
网站建设 2026/5/30 11:27:43

计算机SSM毕设实战-基于ssm的社区外来务工人员管理系统的设计与实现人员信息登记、居住管理、就业跟踪、服务申请【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/5/28 20:41:33

SSM毕设选题推荐:基于ssm的社区外来务工人员管理系统的设计与实现基于Java+SSM的社区外来务工人员管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/5/22 17:15:25

社会网络仿真软件:UCINET_(10).网络演化模型

网络演化模型 在网络分析中,网络演化模型是一种重要的工具,用于模拟和分析网络结构随时间变化的过程。这些模型可以帮助我们理解网络中的动态行为,预测未来的变化趋势,并为决策提供依据。UCINET 提供了多种方法来构建和分析网络演…

作者头像 李华