目录

  • 三、Tkinter的Lebal标签
  • 3.1 Lebal标签的定义
  • 3.2 Label标签的构成
  • 3.3 Label标签添加背景
  • 3.4 Message消息


三、Tkinter的Lebal标签

3.1 Lebal标签的定义

Label(标签)控件,是 Tkinter 中最常使用的一种控件,主要用来显示窗口中的文本或者图像,并且不同的 Lable(标签)允许设置各自不同的背景图片。

下面展示Lebal标签的常用函数:

名称

说明

anchor

控制文本(或图像)在 Label 中显示的位置(方位),通过方位的英文字符串缩写(n、ne、e、se、s、sw、w、nw、center)实现定位,默认为居中(center)

bg

用来设置背景色

bd

即 borderwidth 用来指定 Label 控件的边框宽度,单位为像素,默认为 2 个像素

bitmap

指定显示在 Label 控件上的位图,若指定了 image 参数,则该参数会被忽略

compound

控制 Lable 中文本和图像的混合模式,若选项设置为 CENTER,则文本显示在图像上,如果将选项设置为 BOTTOM、LEFT、RIGHT、TOP,则图像显示在文本旁边。

cursor

指定当鼠标在 Label 上掠过的时候,鼠标的的显示样式,参数值为 arrow、circle、cross、plus

disableforeground

指定当 Label 设置为不可用状态的时候前景色的颜色

font

指定 Lable 中文本的 (字体,大小,样式)元组参数格式,一个 Lable 只能设置一种字体

fg

设置 Label 的前景色

height/width

设置 Lable 的高度/宽度,如果 Lable 显示的是文本,那么单位是文本单元,如果 Label 显示的是图像,那么单位就是像素,如果不设置,Label 会自动根据内容来计算出标签的高度

highlightbackground

当 Label 没有获得焦点的时候高亮边框的颜色,系统的默认是标准背景色

highlightcolor

指定当 Lable 获得焦点的话时候高亮边框的颜色,系统默认为0,不带高亮边框

image

指定 Label 显示的图片,一般是 PhotoImage、BitmapImage 的对象

justify

表示多行文本的对齐方式,参数值为 left、right、center,注意文本的位置取决于 anchor 选项

padx/pady

padx 指定 Label 水平方向上的间距(即内容和边框间),pady 指定 Lable 水平方向上的间距(内容和边框间的距离)

relief

指定边框样式,默认值是 “flat”,其他参数值有 “groove”、“raised”、“ridge”、“solid"或者"sunken”

state

该参数用来指定 Lable 的状态,默认值为"normal"(正常状态),其他可选参数值有"active"和"disabled"

takefocus

默认值为False,如果是 True,表示该标签接受输入焦点

text

用来指定 Lable 显示的文本,注意文本内可以包含换行符

underline

给指定的字符添加下划线,默认值为 -1 表示不添加,当设置为 1 时,表示给第二个文本字符添加下划线。

wraplength

将 Label 显示的文本分行,该参数指定了分行后每一行的长度,默认值为 0

3.2 Label标签的构成

每个控件主要由三部分组成内容区域、填充区、边框。这三个区域的大小通过以下属性进行控制,如下所示:

  • width/height
  • padx/pady
  • borderwidth

下图则表示对内容区域、填充区、边框 的说明

Label gui python 用法 python中的label函数_开发语言

演示代码如下

from tkinter import Tk, Label

win = Tk()
win.title("Python自学")
win.geometry('480x270')
# 若内容是文字则以字符为单位,图像则以像素为单位
label = Label(win, text="网址:study.python.net", font=('宋体', 13, 'bold italic'), bg="green",
              # 设置标签内容区大小
              width=30, height=15,
              # 设置填充区距离、边框宽度和其样式(凹陷式)
              padx=10, pady=15, borderwidth=10, relief="sunken")
label.pack()
win.mainloop()

3.3 Label标签添加背景

Label(标签)除了可以显示文本之外,还可以用来显示图片,下面演示一下显示图片,代码如下-

from tkinter import Tk, Label, PhotoImage

win = Tk()
win.title("Python自学")
win.geometry('480x270')
# 显示图片
photo = PhotoImage(file='./python.png')
# 将图片放在主窗口的右边
Label(win, image=photo).pack(side="right")

# 显示文字,设置文本格式
text = "这里有精彩的教程,\n " \
       "这里有数不尽的知识宝藏"
Label(win, text=text, fg='grey', font=('微软雅黑', 15, 'italic'), justify='left', padx=10).pack(side='left')
# 若内容是文字则以字符为单位,图像则以像素为单位
label = Label(win, text="网址:study.python.net", font=('宋体', 13, 'bold italic'), bg="green",
              # 设置标签内容区大小
              width=30, height=15,
              # 设置填充区距离、边框宽度和其样式(凹陷式)
              padx=10, pady=15, borderwidth=10, relief="sunken")
label.pack()
win.mainloop()

3.4 Message消息

这里主要介绍下消息控件不用手动换行,代码如下

from tkinter import Tk, Message

win = Tk()
win.title("Python自学")
win.geometry('480x270')

# 显示文字,设置文本格式
txt = "这里有精彩的教程,这里有数不尽的知识宝藏"
# 若内容是文字则以字符为单位,图像则以像素为单位
msg = Message(win, text=txt, width=40, font=('微软雅黑', 10, 'bold'))
msg.pack()
win.mainloop()