Tkinter 组件详解(一):Label

2023-11-06

Tkinter 组件详解之Label

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

何时使用 Label 组件?

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

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

用法

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

import tkinter as tk

master = 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

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tkinter 组件详解(一):Label 的相关文章

  • 熊猫按 n 最大总和分组

    我正在尝试使用groupby nlargest and sum在 Pandas 中一起运行 但在运行时遇到困难 State County Population Alabama a 100 Alabama b 50 Alabama c 40
  • Flask-SocketIO redis 订阅

    我在用着https github com miguelgrinberg Flask SocketIO https github com miguelgrinberg Flask SocketIO实现 WebSocket 服务器 我需要从另一
  • App Engine 上的 Django 与 webapp2 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何替换Python字符串中的正确字母

    任务是 您的任务是纠正数字化文本中的错误 您只需处理以下错误 S 被误解为 5 O 被误解为 0 I 被误解为 1 我的代码 def correct string for i in string if 5 in string string
  • Python Requests 库重定向新 url

    我一直在浏览 Python 请求文档 但看不到我想要实现的任何功能 在我的脚本中我设置allow redirects True 我想知道该页面是否已重定向到其他内容 新的 URL 是什么 例如 如果起始 URL 为 www google c
  • Scrapy 文件管道不下载文件

    我的任务是构建一个可以下载所有内容的网络爬虫 pdfs 在给定站点中 Spider 在本地计算机和抓取集线器上运行 由于某种原因 当我运行它时 它只下载一些但不是全部的 pdf 通过查看输出中的项目可以看出这一点JSON 我已经设定MEDI
  • 使用 Tkinter 打开网页

    因此 我的应用程序需要能够打开其中的单个网页 并且它必须来自互联网并且未保存 特别是我想使用 Tkinter GUI 工具包 因为它是我最熟悉的工具包 最重要的是 我希望能够在窗口中生成事件 例如单击鼠标 但无需实际使用鼠标 有什么好的方法
  • 如何找到多个 pandas 数据框中一对列与任意顺序对的交集?

    我有多个 pandas 数据框 为了简单起见 假设我有三个 gt gt df1 col1 col2 id1 A B id2 C D id3 B A id4 E F gt gt df2 col1 col2 id1 B A id2 D C id
  • 为什么需要设置WORKON_HOME环境变量?

    我已经有一段时间没有使用 python 虚拟环境了 但我也安装了虚拟环境包装器 我的问题是 在文档页面中它说要这样做 export WORKON HOME Envs mkdir p WORKON HOME source usr local
  • 我可以用关闭的文件对象做什么?

    当您打开文件时 它存储在一个打开的文件对象中 该对象使您可以访问该文件的各种方法 例如读取或写入 gt gt gt f open file0 gt gt gt f
  • multiprocessing.Queue 中的 ctx 参数

    我正在尝试使用 multiprocessing Queue 模块中的队列 实施 https docs python org 3 4 library multiprocessing html exchang objects Between p
  • 使用 ElementTree 在 python 中解析 xml

    我对 python 很陌生 我需要解析一些脏的 xml 文件 这些文件需要先清理 我有以下 python 代码 import arff import xml etree ElementTree import re totstring wit
  • pandas groupby 操作缺少数据

    在 pandas 数据框中 我有一列如下所示 0 M 1 E 2 L 3 M 1 4 M 2 5 M 3 6 E 1 7 E 2 8 E 3 9 E 4 10 L 1 11 L 2 12 M 1 a 13 M 1 b 14 M 1 c 15
  • 将图与热图(可能是对数)配对?

    How to create a pair plot in Python like the following but with heat maps instead of points or instead of a hex bin plot
  • 获取多个同名请求参数

    我的问题是给定的代码 from flask import Flask request app Flask name app route def hello return str request values get param None a
  • 根据标点符号列表替换数据框中的标点符号[重复]

    这个问题在这里已经有答案了 使用 Canopy 和 Pandas 我有数据框 a 其定义如下 a pd read csv text txt df pd DataFrame a df columns test test txt 是一个单列文件
  • 类返回语句不打印任何输出

    我正在学习课程 但遇到了问题return语句 它是语句吗 我希望如此 程序什么也没有打印出来 它只是结束而不做任何事情 class className def createName self name self name name def
  • AWS 将 MQTT 消息存储到 DynamoDB

    我构建了一个定期发送 MQTT 消息的 python 脚本 这是发送到后端的 JSON 字符串 Id 1234 Ut 1488395951 Temp 22 86 Rh 48 24 在后端 我想将 MQTT 消息存储到 DynamoDB 表中
  • ProcessPoolExecutor 传递多个参数

    ESPN播放器免费 class ESPNPlayerFree def init self player id match id match id team 团队名单1 277906 cA2i150s81HI3qbq1fzi za1Oq5CG
  • PyObjC + Python 3.0 问题

    默认情况下 Cocoa Python 应用程序使用默认的 Python 运行时版本 2 5 如何配置我的 Xcode 项目以便它使用较新的 Python 3 0 运行时 我尝试用新版本替换项目中包含的Python framework 但它不

随机推荐

  • ctfshow web2

    前言 本来是想做两道简单的ctf解压 结果写笔记的时候联想到练习使用sqlmap和sql注入getshell这两件事 因此有了这篇文章 手工注入 输入内容 打开burp抓包 直觉测试了下万能密码 能成 这里我们可以假设题目的sql语句为 w
  • linux下使用X2Go进行远程连接

    http www unixmen com x2go an open source remote desktop solution for linux About X2Go X2Go is an Open Source remote desk
  • openwrt上“DHCP packet received on ra0 which has no address”问题查找和解决

    在商场进行商业wifi布点的过程中 经常有用户反映说wifi连不上了 或者是连上了是一个叹号 分配不了IP 电脑设置了静态IP是可以接入的 check了logread发现打印里面有这么一句 DHCP packet received on r
  • 机器人学笔记(01):1.绪论

    1 机器人名称的由来 About Robot 机器人的英文名词叫Robot Robot一词最早出现在1920年捷克作家卡雷尔 卡佩克 Karel Capek 所写的一个剧本中 这个剧本的名字叫 Rossum s Universal Robo
  • 信息学奥赛一本通(c++):2024:【例4.10】末两位数

    一 题目 2024 例4 10 末两位数时间限制 1000 ms 内存限制 65536 KB 题目描述 求n个1992的乘积的末两位数是多少 输入 输入n 输出 如题述的末两位数 输入样例 3 输出样例 88 提示 数据范围 对于所有数据
  • GBase 8c 教程(十)分片基础操作

    在建表语句中加入分片操作 可以将数据以HASH分片的方式分配至每个DN节点 操作如下 1 建表 使用distribute by进行HASH分片操作 CREATE TABLE disttab c1 int c2 int c3 varchar
  • 深度学习笔记20235018

    使用深度神经网络 几十层 几百层的神经网络 从大规模数据中学习的过程就是深度学习 将输入的数据的异同点进行提取并且层层抽象 记录在神经网络的参数里就训练出来一个可以区分这些物体的深度神经网络 面向机器的知识图谱 是一个关联的知识网络 举一反
  • PCL求取三维点云模型每点曲率

    最近在做有关实验需要计算模型曲率 但是网上找了一圈也没找到满意的资料 最后发现PCL库可以很方便的求取模型中每一个点的曲率 但是我们要想将PCL库求得的曲率数据应用到自己的项目中需要将PCL库与我们的项目进行结合 并且在PCL求出曲率后存放
  • SSM框架之SpringMVC

    文章目录 SpringMVC MVC设计模式 springmvc框架 入门程序 配置前端控制器和处理器适配器 开发Handler 映射器和适配器 非注解的处理器映射器 非注解的处理器适配器 注解的处理器映射器和适配器 重点 源码分析 spr
  • 长短时记忆网络(LSTM)负荷预测项目(matlab)

    目录 1 LSTM介绍 2 数据集准备及预处理 3 LSTM模型搭建与训练 4 预测模型测试 1 LSTM介绍 长短期记忆网络 LSTM long short term memory 是 RNN 的一种变体 其核心概念在于细胞状态以及 门
  • 微信小程序宠物用品服务商城SSM-JAVA【数据库设计、论文、源码、开题报告】

    功能介绍 操作角色为管理员和用户 商家 管理员的功能为用户管理 商家管理 宠物分类管理 宠物信息管理 商品分类管理 宠物用品管理 项目类型管理 服务项目管理 宠物日志管理 订单管理等 用户的功能为购买宠物 商品 预约服务发表日志管理订单等
  • 美团西安美食部分爬虫(修改版)(python)

    美团美食 coding UTF 8 import requests import time from bs4 import BeautifulSoup import json import csv import random with op
  • 区块链100篇之fabric的网络搭建(一)

    好久没写博客了 今天开始写关于fabric相关的博客 包括网络的搭建 链码的编写以及sdk的封装 搭建网络 网络的搭建想分为三篇来写 第一篇写网络的搭建 这里是官方fabric samples的简化版 第二篇是关于yaml文件的编写 第三篇
  • 【数据科学】肯德尔等级相关系数( Kendall's tau coefficient )

    在统计学中 Kendall等级相关系数 通常称为Kendall的tau系数 在希腊字母 之后 是用于测量两个测量量之间的序数关联的统计量 甲tau蛋白测试是一种非参数假设检验用于基于所述tau蛋白系数统计依赖性 它是衡量等级相关 数据的排序
  • java 版本企业招标投标管理系统源码+功能描述+tbms+及时准确+全程电子化

    功能描述 1 门户管理 所有用户可在门户页面查看所有的公告信息及相关的通知信息 主要板块包含 招标公告 非招标公告 系统通知 政策法规 2 立项管理 企业用户可对需要采购的项目进行立项申请 并提交审批 查看所有的立项信息 主要功能包含 招标
  • 第五章 Maven结合Junit实现单元测试

    maven的重要职责之一就是自动运行单元测试 它通过maven surefire plugin与主流的单元测试框架junit和testng集成 并且能够自动生成丰富的结果报表 maven并不是一个单元测试框架 他只是在构建执行打特定的生命周
  • RobotFramework介绍

    Robot Framework 1 入门介绍 小菠萝测试笔记 博客园 cnblogs com
  • C++——初始化列表

    初始化列表 在构造函数执行时 先执行初始化列表 实现变量的初始化 然后再执行函数内部的语句 构造函数体赋值 在创建对象时 编译器通过调用构造函数 给对象中各个成员变量一个合适的初始值 class Date public Date int y
  • css中nth-child的属性

    参数为整数 nth child 1 它表示要选择父元素中索引为该数值的子元素 此时的索引值从1开始 参数是奇数偶数 nth child odd odd表示选择奇数项的子元素 nth child even even表示选择偶数项的子元素 参数
  • Tkinter 组件详解(一):Label

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