Python Tkinter Label组件参数详解与实战

Aria
Aria
发布时间:2026-10-14| 6人浏览过
原创

本文深入解析Python Tkinter库中Label组件的核心用法。详细阐述背景区域(内容、填充、边框)与前景元素(文本、图像)的自定义参数,包括字体、对齐、颜色及动态变量绑定。通过代码示例展示如何组合使用compound、anchor等属性实现复杂的界面布局,帮助开发者掌握Tkinter基础UI构建技巧。

开发环境为Python 2.7.4,操作系统为Windows 7 x86。

Label组件简介

1. 简介

Label组件主要用于在指定窗口中显示文本或图像。其最终视觉效果由背景层与前景层叠加构成。

Label组件的构造函数定义为:Label(master=None, cnf={}, **kw)。其中,kw参数用于传入自定义Label组件的键值对配置。

背景区域自定义

2. 背景自定义

Label的背景区域由三个部分组成:内容区、填充区和边框。

<1> 内容区参数:width和length用于指定区域大小。若显示文本,单位为一个字符的大小;若显示图像,单位为像素。默认情况下,该区域大小会根据显示内容动态调整,类型为int。

background参数用于指定背景颜色,默认值取决于操作系统设置。

<2> 填充区参数:指内容区与边框之间的间隔,单位为像素。相关参数为padx和pady,类型为int。

<3> 边框参数:包括样式relief(可选值:flat(默认), sunken, raised, groove, ridge)和borderwidth(边框宽度,单位为像素,默认值由系统决定,通常为1或2像素)。

highlightbackground、highlightcolor和highlightthickness这三个参数仅在Label允许接收焦点时(takefocus=True)生效,用于设置获取焦点前后的高亮边框颜色及宽度。

实例说明

上图右侧展示了背景的构成:内容区(黑色)、填充区(绿色)和边框(黄色)。

定义的背景内容区可容纳3行9列的字符,如上图右侧小窗口中的Label所示。增加填充区和边框后的效果如上图左侧的Label所示。

前景元素自定义

3. 前景自定义

前景定义分为文本内容和图像两部分进行说明。

3.1 文本

文本内容选项包括:<1> 指定字体和大小,格式为font = (font_name, size),默认由系统指定。

<2> 文本对齐方式,通过justify参数设置,可选值为center(默认)、left或right。

<3> 指定文本(或图像)颜色,通过foreground参数设置,值可以是颜色英文名称或RGB格式字符串。

<4> 指定文本内容:静态文本使用text = "目标字符串...";动态更新使用textvariable = str_obj。当str_obj的内容改变时,Label中对应内容会自动更新。

需注意,str_obj必须是Tkinter支持的字符串类型变量,例如:str_obj = Tkinter.StringVar(),并通过str_obj.set("目标文本内容")进行赋值。

<5> 为单个字符添加下划线,通过underline = index参数设置,其中index为目标字符串中的字符索引值。

<6> 文本或图像在背景内容区的位置,通过anchor参数设置。可选值为n, s, w, e, ne, nw, sw, se, center。其中eswn分别代表东南西北(上北下南左西右东)。

图像内容选项包括:<1> 指定图片:bitmap = bitmap_image(当指定image选项时,此参数被忽略)或image = normal_image(仅支持GIF、PPM/PGM格式图片)。

需要注意的是,此处使用的bitmap_image和normal_image对象均需经过Tkinter转换后的图像格式。

例如:bitmap_image = Tkinter.BitmapImage(file = "位图片路径")

例如:normal_image = Tkinter.PhotoImage(file = "gif、ppm/pgm图片路径")

图片和文本的取舍:compound参数用于控制同时显示文本和图像时的布局。当同时指定了要显示的文本和图像时,可通过该参数进行不同设置。

可选值:None(默认值,表示只显示图像,不显示文本);bottom/top/left/right,表示图片显示在文本的下/上/左/右;center,表示文本显示在图片中心上方。

上图左中部分compound="bottom",表示图片显示在文字下方;上图左中部分compound="center",表示文字显示在图片中间上方。

其他常用参数

4. Label的其他参数

<1> activebackground和activeforeground用于设置Label处于活动(active)状态下的背景和前景颜色,默认由系统指定。

<2> disabledforeground指定当Label不可用(Disable)状态下的前景颜色,默认由系统指定。

<3> cursor指定鼠标经过Label时鼠标的样式,默认由系统指定。

<4> state指定Label的状态,用于控制Label如何显示。可选值有:normal(默认)、active、disable。

程序源码


#coding=utf-8
import Tkinter as tk
 
if __name__ == "__main__":
  import Tkinter as tk
  master = tk.Tk()
  str_obj = tk.StringVar()
  str_obj.set("这是TKinter所支持的字符串类型")
 
  #bitmap_image = tk.BitmapImage(file = "./tmp/11.bmp")
  normal_image = tk.PhotoImage(file = "./tmp/11.gif")
  print type(normal_image)
  print normal_image
  w = tk.Label(master,
         #背景选项
         #height = 5,
         #width = 20,
         padx=10,
         pady=20,
         background="blue",
         relief="ridge",
         borderwidth=10,
         #文本
         text = "123456789\nabcde\nABCDEFG",
         #textvariable = str_obj,
         justify = "left",
         foreground = "white",
         underline = 4,
         anchor = "ne",
         #图像
         image = normal_image,
         compound = "bottom",
         #接受焦点
         #takefocus = True,
         #highlightbackground = "yellow",
         #highlightcolor = "white",
         #highlightthickness = 5
         )
  w.pack()
  master.mainloop()

以上这篇对Python中TKinter模块中的Label组件实例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持本站。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。