Python Tkinter组件之Label

1,410 阅读5分钟

玩转Python

这是我参与8月更文挑战的第22天,活动详情查看: 8月更文挑战

复习回顾

我们前面已经学习了两期的 GUI 编程相关内容

GUI 提供这些组件,组件的父类都是widget类

后期,我们将开始逐一学习每一个组件相关使用方法

GUI编程库继承关系

🎸标签我们在日常工作中,日历上添加标签记录,Excel表格上高亮标记等等随处可见

🎹 本期,我们将学习最常用的组件之一标签Label相关用法,let's go~

1. Label 概述

Label 是Python Tkinter 标签组件之一,主要显示指定的窗口中的文本和图像。

  • Label继承Widget类
  • 只显示的文本和图像,可以用于显示一行或者多行文本且不允许用户修改的场景

主要语法格式如下:

  W = Label(master,option)  
    
  • master:父容器
  • options:可选项,以键-值对的形式设置标签的属性,并以分号隔开

2. Label 常见属性

属性作用
Anchor标签中文本的位置
backgroung(bg)背景色
foreground(fg)前景色
borderwidth(bd)边框宽度
width标签宽度
height标签高度
bitmap标签中的位图
font字体
image标签中的图片
justify多行文本的对齐方式
text标签中的文本,可以使用'\n'表示换行
textvariable显示文本自动更新,与StringVar等配合着用

3. 设置Options选项

Label 组件可以通过Options设置其属性,从而控制组件的各种状态比如宽度、高度、黑色、位置等等

设置 options 选项有三种方式:

  • 创建对象时,使用命令参数(也叫关键字参数)

    but = Button(self,fg="red",bg="blue")
    
  • 创建对象后,使用字典索引方式

    but["fg"] = "red"
    but["bg"] = "blue"
    
  • 创建对象后,使用config()方法

     but.config(fg= "red",bg="blue")
    
    

Options选项在查看方式:

  1. 通过打印 config()方法的返回值,查看Options选项

    print(but.config())
    
  2. 通过在IDE中,点击组件对象的构造方法,进入到方法内观察

    but = Button(root) # 按Ctrl+左键跳转到源码查看
    

    button源代码

4. 常见Options选项

选项名含义单位典型值
activebackground指定组件处于激活状态时的背景色color'gray25'或‘#ff4400’
activeforeground指定组件处于激活状态时的前景色color'gray25'或‘#ff4400’
anchor指定组件内的信息,在组件中如何显示。必须为下面值之一:N,NE,E,SE,S,SW,W,NW,或者CENTERCENTER
background(bg)指定组件正常显示时的背景色color'gray25'或‘#ff4400’
bitmap指定在组件上显示该选项指定的位图,该选择值可以时TK_GetBitmap接收的任何形式的位图
borderwith指定组件正常显示时间的3D 边框的宽度,该值可以是Tk_GetPixels接收的任何格式pixel2
cursor指定光标在组件上的样式cursorgumby
command指定按组件关联的命令方法,该方法通常在鼠标离开组件时被触发调用
height指定组件的高度,以font选项指定的字体的字符高度为单位,至少为1位integer14
image指定组件中显示的图像,如果设置了image选项,它会覆盖text、bitmap选项image
justify指定组件中内容的对齐方式,支持LEFT、CENTER、RIGHTconstantRIGHT
text指定组件上显示的文本,文本显示格式由组件本身,anchor及justify 选择决定str'确定'
padx指定组件内部在水平方向上两边的空白,该值可以时Tk_GetPixels接收任何形式的格式pixel12
pady指定组件内部在垂直方向上两边的空白pixel12
tekefocus指定组件在键盘遍历(Tab或者Shift+Tab)是否接收焦点,将该选项设为1表示接收焦点,设为0表示不接收焦点boolean1或者YES
textvariable指定一个变量名,GUI组件负责显示该变量值转换得到的字符串,文本显示格式由组件本身,anchor及justify选项决定variablebntext
relief指定组件的3D效果,选项支持的值包括RAISD、SUNKEN、FLAT、RIDGE、SOLID、GROOVEconstantGROOVE
selectbackground指定组件在选中状态下的背景色color'gray25'或‘#ff4400’
selectborderwidth指定组件在选中状态下的3D边框的宽度pixel2
selectforeground指定组件在选中状态下的背景色color'gray25'或‘#ff4400’
state指定组件的当前状态constantNORMAL

📢 重要说明:

  1. Tkinter自带支持gif 和 png两种格式
  2. 如果使用jpg图片,需要使用pil模块,安装方式为pip install pillow

5. 小试牛刀

label效果

代码如下:

from tkinter import *

class Application(Frame):

    def __init__(self,master=None):
        # super()代表的是父类的定义,而不是父类对象
        super().__init__(master)
        self.master = master
        self.pack()

        # self.createwidget()
        self.createWidget()

    def createwidget(self):

        self.but1 = Button(self)
        self.but1["text"] = "add"
        self.but1.pack()
        self.but1["command"] = self.addinfo

    def addinfo(self):
        messagebox.showinfo("提示","添加成功")

    def createWidget(self):

        self.lab1 = Label(self,text="这是标签1",width = 10,height = 2,bg = "pink",fg="white")
        self.lab1.pack()
        self.lab2 = Label(self,text= "这是标签2",width = 10,height =2,bg = "orange", fg = "black",font=("黑体",30) )
        self.lab2.pack()

        global  photo
        photo = PhotoImage(file="heart.gif")

        self.lab3 = Label(self,image = photo)
        self.lab3.pack()





root = Tk()
root.geometry("400x200+200+300")
root.title("MyfirstAPP")
app = Application(master=root)

root.mainloop()

总结

本期,我们学习Tkinter组件 Label 的基本语法学,可以使用Options设置标签🏷️的颜色、大小、高度和宽度等属性,便于我们更好的设计出好看的label显示。

以上是本期内容,欢迎大佬们点赞评论指正,下次见~ღ( ´・ᴗ・` )比心🌹🌹