tkinter库笔记 - 创建与设置Label标签

本篇笔记: 记录使用tikinter库创建Label和设置Label属性的方法。

1、创建Label标签的方法

1.1 简介

在tkinter库中,label()函数用于创建一个标签控件,可以在窗口中显示一段文本或图像。
它的语法如下:
label = tk.Label(parent, options...)
参数说明

  • parent:表示该标签控件的父容器,例如 tk.Tk() 的返回值就是常见的父容器;
  • options:可选参数,用于设置标签控件的属性,比如文本内容、字体、颜色、图片等等。

1.2 options常用选项

  • text:用来设置需要显示的文本内容。
  • font:标签的字体。
  • fg:标签的前景色(即文本颜色)。
  • bg:标签的背景色。
  • width:标签的宽度。
  • height:标签的高度。
  • image:标签的图片。
  • compound:指定文本和图像的排列方式,可选值包括 TOP、BOTTOM、LEFT和 RIGHT等。

2、Options常用选项样例

2.1 设置label的文本内容

import tkinter as tk
win = tk.Tk()
win.geometry("200x50")
tk.Label(win, text='这是个Label').pack()
win.mainloop()

运行效果:


text选项样例

2.2设置Labe标签的字体属性

1、字体font参数
font参数可以接受一个字典或一个字符串作为输入,用于设置字体的名称、大小和风格等属性。font属性的可选值取决于计算机上已安装的字体。
font=('family', size, 'weight', 'slant', 'underline', 'overstrike')
以下是一些常用的字体属性:

  • family:字体的名称,例如:Arial、Calibri、Comic Sans MS、Consolas、Courier New、Georgia、Helvetica、Impact、Times New Roman、Verdana, 宋体,楷体等。
  • size:字体的大小,以像素为单位。
  • weight:字体的粗细,可选值包括 normal、bold。
  • slant:字体的倾斜程度,可选值包括 normal、italic。
  • underline:是否添加下划线,如果未赋值则表明无下划线。
  • overstrike:是否添加删除线,如果未赋值则表明无删除线。

2、样例

import tkinter as tk
win = tk.Tk()
win.geometry("500x100")
tk.Label(win, text='宋体-14-正常-非斜体-无下划线-无删除线', font=('宋体', 14)).pack()
tk.Label(win, text='宋体-14-正常-非斜体-无下划线-无删除线', font=('宋体', 14, 'normal', 'normal')).pack()
tk.Label(win, text='楷体-16-粗体-斜体-下划线-删除线', font=('楷体', 16, 'bold', 'italic', 'underline', 'overstrike')).pack()
win.mainloop()

运行效果:


font字体样例

2.3设置Labe标签的文本颜色和背景颜色

在tk库中,fg和bg参数分别用于设置标签的前景色和背景色。
可以使用颜色名称或十六进制值来指定颜色。例如,fg='red'将文本或图片颜色设置为红色,fg='#FF0000'也可以达到同样的效果。
关于颜色可以参考 tkinter库笔记 - 设置窗口背景颜色
样例:

import tkinter as tk
win = tk.Tk()
win.geometry("250x50")
tk.Label(win, text='标签的颜色', font=('宋体', 14), fg='blue', bg='green').pack()
win.mainloop()

运行效果:


标签颜色样例

2.4设置Labe标签的宽度和高度

有2中方法可以设置标签的宽度和高度。

1、直接使用整数值来设置宽度和高度,例如:

import tkinter as tk
win = tk.Tk()
win.geometry("300x100")
tk.Label(win, text='标签的颜色', fg='blue', bg='green', width=20, height=5).pack()
win.mainloop()

运行效果:


直接在Label中设置

2、使用 place() 方法来设置标签的大小和位置:
采用与方法1相同的宽度和高度:

import tkinter as tk
win = tk.Tk()
win.geometry("300x100")
label = tk.Label(win, text='标签的颜色', fg='blue', bg='green')
label.place(width=20, height=5)
win.mainloop()
调整宽度和高度前

调整宽度和高度后:

import tkinter as tk
win = tk.Tk()
win.geometry("300x100")
label = tk.Label(win, text='标签的颜色', fg='blue', bg='green')
# label.place(width=20, height=5)
label.place(width=200, height=50)
win.mainloop()
调整宽度和高度后

对比geometry设置的尺寸,采用place方法设置的宽度和高度更加符合预期。

关于2种方法的差异,从网上找到的说法:

在 Tkinter 中,width 和 height 参数的单位是以字符(char)为基础的,而不是像素(pixel)。
这意味着它们的大小会随着字体和屏幕分辨率的变化而变化。因此,使用 width 和 height 参数设置标签的大小时,通常不会获得预期的效果。
相反,使用 place() 方法可以直接设置标签的像素大小和位置,因此可以获得更准确的控制。

2.5设置Labe标签的图标

  • 在Tkinter中,image 参数用于向标签中添加图片。可以使用 PhotoImage 类来创建一个图片对象,并将其作为 image 参数传递给 Label 方法。
  • 在Tkinter中,一个 Label 中只能设置一张图片。如果需要在一个 Label 中显示多张图片,可以使用多个 Label 或其他部件来实现。
  • 在 Label 中设置了图片后,默认情况下会隐藏文本,并显示图片。如果需要同时显示文本和图片,可以使用 compound 参数来指定文本和图片的相对位置。
    compound 参数接受一个整数值或字符串值,表示图片相对文本的位置。以下是一些常用的字符串值:
    • "top":图片在文本上方。
    • "bottom":图片在文本下方。
    • "left":图片在文本左侧。
    • "right":图片在文本右侧。
    • "center":图片在文本中心。
      样例1:1张图片
import tkinter as tk
win = tk.Tk()
win.geometry("300x150")
image = tk.PhotoImage(file="tk.png")
tk.Label(win, text='标签的颜色', fg='blue', bg='green', image=image, compound='bottom').pack()
win.mainloop()

运行效果:


图片在文本下方

样例2:2张图片

import tkinter as tk
win = tk.Tk()
win.geometry("300x150")
image1 = tk.PhotoImage(file="tk.png")
label1 = tk.Label(win, text='标签的颜色1', fg='blue', bg='green', image=image1, compound='bottom')
label1.pack(side='left')

image2 = tk.PhotoImage(file="tk.png")
label2 = tk.Label(win, text='标签的颜色2', fg='blue', bg='gray', image=image2, compound='top')
label2.pack(side='right')
win.mainloop()

运行 效果:


2张图片

【相关链接】
GUI库 - tkinter笔记(汇总)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容