The Tkinter Label Widget
Label(标签)组件用于在屏幕上显示文本或图像。Label 组件仅能显示单一字体的文本,但文本可以跨越多行。另外,还可以为其中的个别字符加上下划线(例如用于表示键盘快捷键)。
何时使用 Label 组件?
Label 组件用于显示文本和图像,并且使用双缓冲,这样你就可以随时更新内容,没有恼人的闪烁。
如果希望显示的数据用户可以进行操作,使用 Canvas 组件或许更为合适。
用法
使用 Label 组件,你可以指定想要显示的内容(可以是文本、位图或者图片):
1. from tkinter import *
2.
3. master = Tk()
4.
5. w = Label(master, text="HelloFishC!")
6. w.pack()
7.
8. mainloop()
如果你没有指定 Label 的大小,那么 Label 的尺寸是正好可以容纳其内容而已。
当然你可以通过 height 和 width 选项来明确设置 Label 的大小:如果你显示的是文本,那么这两个选项是以文本单元为单位定义Label 的大小;如果你显示的是位图或者图像,那么它们以像素为单位(或者其他屏幕单元)定义 Label 大小。
你可以通过foreground(或 fg)和 background(或 bg)选项来设置 Label 的前景色和背景色。你也可以选择 Label 中的文本用哪种字体来显示。指定颜色和字体时需谨慎,除非你有一个很好的理由,否则建议使用默认值(主要是考虑到不同平台的兼容性)。
1. w = Label(master, text="我爱小甲鱼", font="华康少女字体, 16", fg="green")
注:你还可以使用 #RRGGBB 的格式指定具体的颜色值,例如"#%02x%02x%02x" % (123, 188, 233)
Label 可以显示多行文本,你可以直接使用换行符或使用 wraplength 选项来实现。当文本换行的时候,你可以使用 anchor 和 justify 选项来使得文本如你所希望的显示出来:
1. longtext = """
2. Label 可以显示多行文本,你可以直接使用换行符
3. 或使用 wraplength 选项来实现。当文本换行的时
4. 候,你可以使用 anchor 和 justify 选项来使得
5. 文本如你所希望的显示出来。
6. """
7. w = Label(master, text=longtext,anchor=W, justify=LEFT)
8. w.pack()
Label可以显示 Tkinter 变量的内容。言下之意就是当变量的内容发生改变时,Label 中显示的内容也会自动更新:
1. v = StringVar()
2. w = Label(master, textvariable=v).pack()
3. v.set("~新的文本~")
你可以使用 Label 显示 PhotoImage 和 BitmapImage 对象。当你这么做的时候,请务必保留一份图片对象的引用,以防止被Python 的垃圾回收机制回收。你可以使用一个全局变量,或一个实例的属性,或者再简单点,在实例上添加一个属性即可:
1. photo =PhotoImage(file="FishC.gif")
2. w = Label(master, image=photo)
3. w.pack()
参数
Label(master=None, **options) (class)
master -- 父组件
**options -- 组件选项,下方表格详细列举了各个选项的具体含义和用法:
选项 | 含义 |
activebackground | 1. 设置当 Label 处于活动状态(通过 state 选项设置状态)的背景色 |
activeforeground | 1. 设置当 Label 处于活动状态(通过 state 选项设置状态)的前景色 |
anchor | 1. 控制文本(或图像)在 Label 中显示的位置 |
background | 1. 设置背景颜色 |
bg | 跟 background 一样 |
bitmap | 1. 指定显示到 Label 上的位图 |
borderwidth | 1. 指定 Label 的边框宽度 |
bd | 跟 borderwidth 一样 |
compound | 1. 控制 Label 中文本和图像的混合模式 |
cursor | 1. 指定当鼠标在 Label 上飘过的时候的鼠标样式 |
disabledforeground | 1. 指定当 Label 不可用的时候前景色的颜色 |
font | 1. 指定 Label 中文本的字体 |
foreground | 1. 设置 Label 的文本和位图的颜色 |
fg | 跟 foreground 一样 |
height | 1. 设置 Label 的高度 |
highlightbackground | 1. 指定当 Label 没有获得焦点的时候高亮边框的颜色 |
highlightcolor | 1. 指定当 Label 获得焦点的时候高亮边框的颜色 |
highlightthickness | 1. 指定高亮边框的宽度 |
image | 1. 指定 Label 显示的图片 |
justify | 1. 定义如何对齐多行文本 |
padx | 1. 指定 Label 水平方向上的额外间距(内容和边框间) |
pady | 1. 指定 Label 垂直方向上的额外间距(内容和边框间) |
relief | 1. 指定边框样式 |
state | 1. 指定 Label 的状态 |
takefocus | 1. 如果是 True,该 Label 接受输入焦点 |
text | 1. 指定 Label 显示的文本 |
textvariable | 1. Label 显示 Tkinter 变量(通常是一个 StringVar 变量)的内容 |
underline | 1. 跟 text 选项一起使用,用于指定哪一个字符画下划线(例如用于表示键盘快捷键) |
width | 1. 设置 Label 的宽度 |
wraplength | 1. 决定 Label 的文本应该被分成多少行 |