1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 《tkinter实用教程六》tkinter ttk.Label控件

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

时间:2023-04-03 18:14:15

相关推荐

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

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

tkinter ttk.Label 控件

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

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

如何创建ttk.Label对象

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

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

展示效果如下图:

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

ttk.Label如何展示文字

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

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

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

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

from tkinter import *from tkinter import ttkdef 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()IntVar()创建的特殊对象。

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

ttk.Lable如何展示图片

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

示例代码如下:

from tkinter import *from tkinter import ttkroot = 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()

执行结果如下图:

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

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

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

示例代码如下:

from tkinter import *from tkinter import ttkroot = 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()

执行结果如下:

多行文本展示

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

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

示例代码如下:

from tkinter import *from tkinter import ttkroot = 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 实用教程》系列文章

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。