Tkinter 组件详解之Label

Label(标签)组件用于在屏幕上显示文本或图像。Label 组件仅能显示单一字体的文本,但文本可以跨越多行。另外,还可以为其中的个别字符加上下划线(例如用于表示键盘快捷键)。

何时使用 Label 组件?

Label 组件用于显示文本和图像,并且使用双缓冲,这样你就可以随时更新内容,没有恼人的闪烁。

如果希望显示的数据用户可以进行操作,使用 Canvas 组件或许更为合适。

用法

使用 Label 组件,你可以指定想要显示的内容(可以是文本、位图或者图片):

import tkinter as tkmaster = tk.Tk()w = tk.Label(master, text="你好,来自江南的你!")
w.pack()master.mainloop()

如果你没有指定 Label 的大小,那么 Label 的尺寸是正好可以容纳其内容而已,如下:

当然你可以通过 height 和 width 选项来明确设置 Label 的大小:如果你显示的是文本,那么这两个选项是以文本单元为单位定义 Label 的大小;如果你显示的是位图或者图像,那么它们以像素为单位(或者其他屏幕单元)定义 Label 大小。

你可以通过 foreground(或 fg)和 background(或 bg)选项来设置 Label 的前景色和背景色。你也可以选择 Label 中的文本用哪种字体来显示。指定颜色和字体时需谨慎,除非你有一个很好的理由,否则建议使用默认值(主要是考虑到不同平台的兼容性)。

w = tk.Label(master, text="你好,来自江南的你", font=("华文行楷", 20), fg="green")

注:你还可以使用 #RRGGBB 的格式指定具体的颜色值,例如 "#%02x%02x%02x" % (123, 188, 233)

Label 可以显示多行文本,你可以直接使用换行符或使用 wraplength 选项来实现。当文本换行的时候,你可以使用 anchor 和 justify 选项来使得文本如你所希望的显示出来:

longtext = """
Label 可以显示多行文本,你可以直接使用换行符
或使用 wraplength 选项来实现。当文本换行的时
候,你可以使用 anchor 和 justify 选项来使得
文本如你所希望的显示出来。
"""
w = tk.Label(master, text=longtext, anchor="w", justify="left")

Label 可以显示 Tkinter 变量的内容。言下之意就是当变量的内容发生改变时,Label 中显示的内容也会自动更新:

v = tk.StringVar()
w = tk.Label(master, textvariable=v)
v.set("~新的文本~")
w.pack()

你可以使用 Label 显示 PhotoImage 和 BitmapImage 对象。当你这么做的时候,请务必保留一份图片对象的引用,以防止被 Python 的垃圾回收机制回收。你可以使用一个全局变量,或一个实例的属性,或者再简单点,在实例上添加一个属性即可:

photo = tk.PhotoImage(file="python.gif")
w = tk.Label(master, image=photo)
w.pack()

参数

Label(master=None, **options) (class)

master -- 父组件

**options -- 组件选项,下方表格详细列举了各个选项的具体含义和用法:

选项 含义
activebackground 1. 设置当 Label 处于活动状态(通过 state 选项设置状态)的背景色
2. 默认值由系统指定
activeforeground 1. 设置当 Label 处于活动状态(通过 state 选项设置状态)的前景色
2. 默认值由系统指定
anchor 1. 控制文本(或图像)在 Label 中显示的位置
2. "n", "ne", "e", "se", "s", "sw", "w", "nw", 或者 "center" 来定位(ewsn 代表东西南北,上北下南左西右东)
3. 默认值是 "center"
background 1. 设置背景颜色
2. 默认值由系统指定
bg 跟 background 一样
bitmap 1. 指定显示到 Label 上的位图
2. 如果指定了 image 选项,则该选项被忽略
borderwidth 1. 指定 Label 的边框宽度
2. 默认值由系统指定,通常是 1 或 2 像素
bd 跟 borderwidth 一样
compound 1. 控制 Label 中文本和图像的混合模式
2. 默认情况下,如果有指定位图或图片,则不显示文本
3. 如果该选项设置为 "center",文本显示在图像上(文本重叠图像)
4. 如果该选项设置为 "bottom","left","right" 或 "top",那么图像显示在文本的旁边(如 "bottom",则图像在文本的下方)
5. 默认值是 NONE
cursor 1. 指定当鼠标在 Label 上飘过的时候的鼠标样式
2. 默认值由系统指定
disabledforeground 1. 指定当 Label 不可用的时候前景色的颜色
2. 默认值由系统指定
font 1. 指定 Label 中文本的字体(注:如果同时设置字体和大小,应该用元组包起来,如("楷体", 20)
2. 一个 Label 只能设置一种字体
3. 默认值由系统指定
foreground 1. 设置 Label 的文本和位图的颜色
2. 默认值由系统指定
fg 跟 foreground 一样
height 1. 设置 Label 的高度
2. 如果 Label 显示的是文本,那么单位是文本单元
3. 如果 Label 显示的是图像,那么单位是像素(或屏幕单元)
4. 如果设置为 0 或者干脆不设置,那么会自动根据 Label 的内容计算出高度
highlightbackground 1. 指定当 Label 没有获得焦点的时候高亮边框的颜色
2. 默认值由系统指定,通常是标准背景颜色
highlightcolor 1. 指定当 Label 获得焦点的时候高亮边框的颜色
2. 默认值由系统指定
highlightthickness 1. 指定高亮边框的宽度
2. 默认值是 0(不带高亮边框)
image 1. 指定 Label 显示的图片
2. 该值应该是 PhotoImage,BitmapImage,或者能兼容的对象
3. 该选项优先于 text 和 bitmap 选项
justify 1. 定义如何对齐多行文本
2. 使用 "left","right" 或 "center"
3. 注意,文本的位置取决于 anchor 选项
4. 默认值是 "center"
padx 1. 指定 Label 水平方向上的额外间距(内容和边框间)
2. 单位是像素
pady 1. 指定 Label 垂直方向上的额外间距(内容和边框间)
2. 单位是像素
relief 1. 指定边框样式
2. 默认值是 "flat"
3. 另外你还可以设置 "groove", "raised", "ridge", "solid" 或者 "sunken"
state 1. 指定 Label 的状态
2. 这个标签控制 Label 如何显示
3. 默认值是 "normal
4. 另外你还可以设置 "active" 或 "disabled"
takefocus 1. 如果是 True,该 Label 接受输入焦点
2. 默认值是 False
text 1. 指定 Label 显示的文本
2. 文本可以包含换行符
3. 如果设置了 bitmap 或 image 选项,该选项则被忽略
textvariable 1. Label 显示 Tkinter 变量(通常是一个 StringVar 变量)的内容
2. 如果变量被修改,Label 的文本会自动更新
underline 1. 跟 text 选项一起使用,用于指定哪一个字符画下划线(例如用于表示键盘快捷键) 
2. 默认值是 -1
3. 例如设置为 1,则说明在 Button 的第 2 个字符处画下划线
width 1. 设置 Label 的宽度
2. 如果 Label 显示的是文本,那么单位是文本单元
3. 如果 Label 显示的是图像,那么单位是像素(或屏幕单元)
4. 如果设置为 0 或者干脆不设置,那么会自动根据 Label 的内容计算出宽度
wraplength 1. 决定 Label 的文本应该被分成多少行
2. 该选项指定每行的长度,单位是屏幕单元
3. 默认值是 0

Tkinter 组件详解(一):Label相关推荐

  1. Tkinter 组件详解(十):Scale

    Tkinter 组件详解之Scale Scale(刻度)组件看起来像是一个带数据的 Scrollbar(滚动条)组件,但事实上它们是不同的两个东东.Scale 组件允许用于通过滑动滑块来选择一个范围内 ...

  2. Tkinter 组件详解(七):Entry

    Tkinter 组件详解之Entry Entry(输入框)组件通常用于获取用户的输入文本. 何时使用 Entry 组件? Entry 组件仅允许用于输入一行文本,如果用于输入的字符串长度比该组件可显示 ...

  3. Tkinter 组件详解(五):Frame

    Tkinter 组件详解之Frame Frame(框架)组件是在屏幕上的一个矩形区域.Frame 主要是作为其他组件的框架基础,或为其他组件提供间距填充. 何时使用 Frame 组件? Frame 组 ...

  4. Tkinter 组件详解(八):Listbox

    Tkinter 组件详解之Listbox Listbox(列表框)组件用于显示一个选择列表.Listbox 只能包含文本项目,并且所有的项目都需要使用相同的字体和颜色.根据组件的配置,用户可以从列表中 ...

  5. Tkinter 组件详解(九):Scrollbar

    Tkinter 组件详解之Scrollbar Scrollbar(滚动条)组件用于滚动一些组件的可见范围,根据方向可分为垂直滚动条和水平滚动条.Scrollbar 组件常常被用于实现文本.画布和列表框 ...

  6. Tkinter组件详解(五):Listbox和Scrollbar

    Tkinter组件详解之Listbox Listbox(列表框)组件用于显示一个选择列表.Listbox 只能包含文本项目,并且所有的项目都需要使用相同的字体和颜色.根据组件的配置,用户可以从列表中选 ...

  7. Tkinter 组件详解(四):Radiobutton

    Tkinter 组件详解之Radiobutton Radiobutton(单选按钮)组件用于实现多选一的问题.Radiobutton 组件可以包含文本或图像,每一个按钮都可以与一个 Python 的函 ...

  8. Tkinter 组件详解(十八):PanedWindow

    PanedWindow 组件(Tk8.4 新增)是一个空间管理组件.跟 Frame 组件类似,都是为组件提供一个框架,不过 PanedWindow 允许让用户调整应用程序的空间划分. 何时使用 Pan ...

  9. Tkinter 组件详解(十九):Toplevel

    Toplevel(顶级窗口)组件类似于 Frame 组件,但 Toplevel 组件是一个独立的顶级窗口,这种窗口通常拥有标题栏.边框等部件. 何时使用 Toplevel 组件? Toplevel 组 ...

最新文章

  1. 简述移动端IM开发的那些坑:架构设计、通信协议和客户端
  2. 物联网6类技术无线连接技术的分析
  3. LVS的工作原理和相关算法
  4. 移动端事件 、zepto移动端事件
  5. C语言程序设计输入x求函数y,C语言程序设计实践(OJ)-初识函数
  6. 微积分19--定积分的几何应用
  7. 联想K系引领智能电视潮流,Android 4.0将成行业标配
  8. what to do preparing for phd
  9. 使用JNA的透明JFrame
  10. ffmpeg获取视频截图
  11. java字节对齐原则_C struct 中字节对齐问题
  12. linux V4L2子系统——v4l2架构(5)之v4l2_device与v4l2_subdev异步机制
  13. 图像处理我是这样入门的------我的第一篇csdn博文
  14. android qq毛玻璃,腾讯电脑管家桌面整理重磅更新!支持毛玻璃效果!
  15. 大数据之hive:hive分桶表
  16. 四 状语从句(2021-11-09)
  17. 华为云计算基础之Fusion Compute介绍
  18. PHP对接僵尸,php – 终止从套接字服务器分叉的僵尸子进程
  19. ChatGPT 突然火爆,在国内你可以这样玩!
  20. 彩虹服务器列表文件,彩虹引擎服务器架构图最详细的讲解

热门文章

  1. Hollo world
  2. DL4J中文文档/开始/速查表
  3. 软件开发 过程管理流程设计
  4. (转)数据挖掘岗求职经验:腾讯+百度+华为(均拿到sp offer)
  5. 2014年度企业云存储盘点
  6. 五年级信息技术上册教案计算机主机探秘,三年级信息技术第三课操作计算机教学设计...
  7. OSChina 周一乱弹 —— 一次失败的网恋经历
  8. 配色网站50个(转载)
  9. python 通达信自动下载收盘和财务数据
  10. vue过滤器——vue全局过滤器,