Label(标签)组件用于在屏幕上显示文本或图像,Label组件仅能显示单一字体的文本,但文本可以跨越多行。
另外,还可以为其中的个别字符加上下划线(例如用于表示键盘快捷键)。
何时使用Label组件?
Label组件用于显示文本和图像,并且使用双缓冲,这样你就可以随时更新内容,无缝衔接,丝滑~
如果希望显示的数据用户可以进行操作,使用Canvas组件可以更丝滑~
用法
使用Label组件,你可以指定想要显示的内容(文本、位图、图片等等)
import tkinter as tk # 不需要安装,直接调用
root = tk.Tk()
L = tk.Label(root, text='hello Python')
L.pack()
tk.mainloop()
如果你没有指定Label的尺寸大小,那么得到的效果就如下:
Label的尺寸就会刚好容纳下显示的文本。
当然你可以通过height和width选项来明确设置Label的大小。
1.如果你显示的是文本,那么这两个选项是以文本单元为单位定义Label的大小;
2.如果闭包显示的位图或者图像,那么它们是以像素为单位定义Label的大小。
你还可以通过foreground(或fg)和background(或bg)选项来设置Label的前景色和背景色。
你也可以指定Label中的文本用哪种字体显示。
但是指定字体和颜色需要考虑不同平台的兼容性,否则可能得不到你想要的效果。
L = tk.Label(root, text='hello Python', font=('黑体', 14), fg='green', height=10, width=20)
Label可以显示多行文本,你可以直接使用换行符或使用wraplength选项来实现。
当使用文本换行的时候,你可以使用anchor和justify选项来使得文本呈多种方式显示出来。
txt = """当使用文本换行的时候,你可以使用anchor和justify选项来使得文本呈多种方式显示出来。"""
L = tk.Label(root, text=txt, font=('黑体', 14), fg='red', height=10, width=30, anchor=tk.W, justify=tk.LEFT)
L.pack()
当然,Label可以显示变量,当显示变量时,Label中的内容会自动更新。
s = tk.StringVar()
L = tk.Label(root, textvariable=s, font=('黑体', 14), fg='red', height=10, width=30, anchor=tk.W, justify=tk.LEFT).pack()
s.set(txt)
Label可以显示PhotoImage和BitmapImage对象。
当传入图片的时候,需要注意保留图片对象的引用,以防止被Python的垃圾回收机制回收。
你可以使用一个全局变量或者一个实例属性。
photo_path = './biu.png'
p = tk.PhotoImage(file=photo_path)
L = tk.Label(root, image=p).pack()
关注公众号,获取200+本Python、人工智能相关学习资料