《tkinter实用教程六》tkinter ttk.Label控件

本文详细介绍了Tkinter的ttk.Label控件的使用方法,包括创建Label对象、展示文字、绑定变量以动态更新文本、显示图片以及设置文字和图片的位置。同时展示了如何通过 换行和wraplength属性实现多行文本显示。通过实例代码,读者可以学习到如何在Tkinter界面中灵活地使用Label控件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

更多《Tkinter 实用教程》系列文章

tkinter ttk.Label 控件

本文提到的 Label 特指 ttk.Label ,和 tkinter.Label 稍有区别。

标签 ttk.Label 控件,可以以相同的样式,显示一行或多行文本、位图(bitmat)或图像(image)。

如何创建 ttk.Label 对象

调用 ttk.Label() 方法,并传入父控件即可,示例如下:

from tkinter import *
from tkinter import ttk

root = Tk()
main = ttk.Frame(root)
l = ttk.Label(main,text="First label") # 创建一个 ttk.Label对象
l.grid()                               # 放置 l
main.grid(column=0,row=0)

root.mainloop()

展示效果如下图:

ttk.Label

一般的控件放置顺序是,在主窗口中放置Frame,在Frame中放置其他控件,如LabelButton等。

ttk.Label 如何展示文字

创建 ttk.Label 对象时,传入的 text 参数是最常用的标签文本设置方法,尤其当 Label 只是用于展示固定文本的时候。

我们可以通过 label['text'] 随时修改 Label 文本内容。

我们还可以通过 Label 控件绑定一个字符串变量,每当变量值发生改变时,标签都会展示变量新的值。

这种功能可以通过 textvariable 实现,代码如下:

from tkinter import *
from tkinter import ttk

def click():
    lvalue.set(lvalue.get()+"1") # 设置变量值

root = Tk()
main = ttk.Frame(root)
lvalue = StringVar()
lvalue.set("变量值")
l = ttk.Label(main,text="First label",textvariable=lvalue) # 绑定变量
btn = ttk.Button(main,text="点一下",command=click)
btn.grid(column=0,row=1)
l.grid(column=0,row=0)                               
main.grid(column=0,row=0)

root.mainloop()

代码执行结果如下图:

StringVar

点击按钮后,如下图:

textvariable

被绑定的变量,并非普通变量,必须是通过 StringVar()IntVar() 创建的特殊对象。

Button 中的内容也是可以绑定变量的!!

ttk.Lable 如何展示图片

ttk.Label 还可以展示图片,如果你需要在界面上放置一张图片,这是最常用的做法。

示例代码如下:

from tkinter import *
from tkinter import ttk

root = Tk()
main = ttk.Frame(root)

image = PhotoImage(file="bg.png")
label = ttk.Label(main,image=image)
label.grid()
main.grid(column=0,row=0)

root.mainloop()

执行结果如下图:

Label展示图片

ttk.Label同时展示文字和图片

如果你同时为 Label 对象设置了 text 参数和 image 参数,那么文字和图像会同时展示。

此时我们可以使用 compound 参数设定文字和图片的相对位置。

示例代码如下:

from tkinter import *
from tkinter import ttk

root = Tk()
main = ttk.Frame(root)
image = PhotoImage(file="bg.png")
label = ttk.Label(main,text="文本",image=image,compound=CENTER)# 文本在图片中间
label.grid()
labe2 = ttk.Label(main,text="文本",image=image,compound=RIGHT)# 文本在图片中间
labe2.grid()
labe3 = ttk.Label(main,text="文本",image=image,compound=LEFT)# 文本在图片中间
labe3.grid()
labe4 = ttk.Label(main,text="文本",image=image,compound=TOP)# 文本在图片中间
labe4.grid()
labe5 = ttk.Label(main,text="文本",image=image,compound=BOTTOM)# 文本在图片中间
labe5.grid()
main.grid(column=0,row=0)

root.mainloop()

执行结果如下:

compound

多行文本展示

ttk.Label 可以通过两种方式展示多行文本:

  1. 在文本中添加 \n,主动换行
  2. 使用 wraplength 指定最宽字符长度,自动换行

示例代码如下:

from tkinter import *
from tkinter import ttk

root = Tk()
main = ttk.Frame(root)
image = PhotoImage(file="bg.png")
label = ttk.Label(main,text="文本文本文本文本文本文本文本\n文本")# 手动换行
label.grid()
labe2 = ttk.Label(main,text="文本文本文本文本文本文本文本文本文本",wraplength=102)# 自动换行
labe2.grid()

main.grid(column=0,row=0)

root.mainloop()

执行结果:

在这里插入图片描述

wraplength 是以像素为单位进行换行的

更多《Tkinter 实用教程》系列文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@魏大大

我们都没有打赏的习惯

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值