Python Tkinter Label组件参数详解与实战
本文深入解析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组件实例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













