py 第三十天 Tkinter1:Label

一、简介

Label(标签)组件用于在屏幕上显示文本或图像。Label 组件仅能显示单一字体的文本,但文本可以跨越多行。另外,还可以为其中的个别字符加上下划线(例如用于表示键盘快捷键)
Label 组件用于显示文本和图像,并且使用双缓冲,这样你就可以随时更新内容,没有恼人的闪烁。
如果希望显示的数据用户可以进行操作,使用Canvas 组件或许更为合适。

二、 用法

1、显示文本

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

 from tkinter import*
 root = Tk()  #形成一个root窗口
 thelabel = Label(root,text = 'hello')  #添加标签
 thelabel.pack() 
 mainloop()

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

from tkinter import*
root = Tk()  #形成一个root窗口
thelabel = Label(root,text = 'Label 可以显示多行文本,\n你可以直接使用换行符或使用 wraplength 选项来实现。\n当文本换行的时候,你可以使用 anchor 和 justify 选项来使得文本如你所希望的显示出来。',font = '隶书',fg = 'white',bg = 'black')

thelabel.pack()
mainloop()

得到:

justify = LEFT/RIGHT/'center'

该代码的效果是令字体左对齐/右对齐/居中

2、指定标签大小

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


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

thelabel = Label(root,text = 'hello',width = 30,height = 5)

可以得到:

3、设置颜色和字体

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

from tkinter import*
root = Tk()  #形成一个root窗口
thelabel = Label(root,text = '你好',width = 30,height = 5,font = '隶书',fg = 'white',bg = 'black')

thelabel.pack()
mainloop()

可以得到:

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

4、显示变量内容

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

from tkinter import*
master = Tk()
v = StringVar()
w = Label(master, textvariable=v).pack()
v.set("~新的文本~")
mainloop()

5、显示图片

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

from tkinter import*
master = Tk()
photo = PhotoImage(file="1.gif")
w = Label(master, image=photo)
w.pack()
mainloop()

三、Label组件的一些参数

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 中文本的字体
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. 另外你还可以设置 SUNKEN,RAISED,GROOVE 或 RIDGE
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

https://fishc.com.cn/forum.php?mod=viewthread&tid=59087&extra=page%3D1%26filter%3Dtypeid%26typeid%3D604

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,444评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,421评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,363评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,460评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,502评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,511评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,280评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,736评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,014评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,190评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,848评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,531评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,159评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,411评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,067评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,078评论 2 352