GUI 图形用户界面编程(三)基本框架与Label的使用

 ✨✨✨

感谢优秀的你打开了小白的文章 

希望在看文章的你今天又进步了一点点,离美好生活更近一步!

本台预告:随着图像处理和人脸识别系列文章的结束,在未来的若干天内将持续更新gui界面编程,欢迎喜欢的小伙伴一起学习!

目录

 GUI编程整体描述

 常用的组件汇总

Label 标签详解

 Label标签实例

运行结果: 


 GUI编程整体描述

 图形用户界面是由一个个组件组成,就像小孩“搭积木”一样最终组成了整个界面。有的组件还能在里面再放置其他组件,我们称为“容器”。Tkinter GUI 组件关系图如下:

 GUI 图形用户界面编程(三)基本框架与Label的使用_第1张图片

  • Misc Wm:

Tkinter 的 GUI 组件有两个根父类,它们都直接继承了 object 类:

  • Misc:它是所有组件的根父类。
  • Wm:它主要提供了一些与窗口管理器通信的功能函数。
  • Tk

Misc Wm 派生出子类 Tk,它代表应用程序的主窗口。一般应用程序都需要直接或间接使用 Tk

  • Pack、Place、Grid

Pack、Place、Grid 是布局管理器。布局管理器管理组件的:大小、位置。通过布局管理器可以将容器中的组件实现合理的排布。

  • BaseWidget

BaseWidget 是所有组件的父类

  • Widget

Widget 是所有组件类的父类。Widget 一共有四个父类:BaseWidget、Pack、Grid、

Place。意味着,所有 GUI 组件同时具备这四个父类的属性和方法。

 GUI 图形用户界面编程(三)基本框架与Label的使用_第2张图片

 常用的组件汇总

Tkinter 类

名称

简介

Toplevel

顶层

容器类,可用于为其他组件提供单独的容器;Toplevel 有点类似于窗口

Button

按钮

代表按钮组件

Canvas

画布

提供绘图功能,包括直线、矩形、椭圆、多边形、位图等

Checkbutton

复选框

可供用户勾选的复选框

Entry

单行输入框

用户可输入内容

Frame

容器

用于装载其它 GUI 组件

Label

标签

用于显示不可编辑的文本或图标

LabelFrame

容器

也是容器组件,类似于 Frame,但它支持添加标题

Listbox

列表框

列出多个选项,供用户选择

Menu

菜单

菜单组件

Menubutton

菜单按钮

用来包含菜单的按钮(包括下拉式、层叠式等)

OptionMenu

菜单按钮

Menubutton 的子类,也代表菜单按钮,可通过按钮打开一个菜单

Message

消息框

类似于标签,但可以显示多行文本;后来当 Label 也能显示

多行文本之后,该组件基本处于废弃状态

PanedWindow

分区窗口

该容器会被划分成多个区域,每添加一个组件占一个区域, 用户可通过拖动分隔线来改变各区域的大小

Radiobutton

单选钮

可供用户点边的单选钮

Scale

滑动条

拖动滑块可设定起始值和结束值,可显示当前位置的精确值

Spinbox

微调选择器

用户可通过该组件的向上、向下箭头选择不同的值

Scrollbar

滚动条

用于为组件(文本域、画布、列表框、文本框)提供滚动功能

Text

多行文本框

显示多行文本

 

Label 标签详解

Label(标签)主要用于显示文本信息,也可以显示图像。

Label(标签)有这样一些常见属性:

width,height:

用于指定区域大小,如果显示是文本,则以单个英文字符大小为单位(一个汉字宽度占 2 个字符位置,高度和英文字符一样);如果显示是图像,则以像素为单位。默认值 是根据具体显示的内容动态调整。

font:

指定字体和字体大小,如:font = (font_name,size)

image:

显示在Label 上的图像,目前tkinter 只支持 gif 格式。

fg 和bg:

fg(foreground):前景色、bg(background):背景色

justify:

针对多行文字的对齐,可设置 justify 属性,可选值"left", "center" or "right"

 Label标签实例

 各种label方法的使用:

"""测试Label组件的基本用法,使用面向对象的方式"""

from tkinter import *

class Application(Frame):

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


    def createWidget(self):
        """创建组件"""
        self.label01 = Label(self,text="我爱你", width=10,height=2,
                             bg="pink", fg="white")
        self.label01["text"]="我爱你"
        self.label01.config(fg="red",bg="pink")


        self.label01.pack()

        self.label02 = Label(self,text="进步小白", width=10,height=2,
                             bg="blue", fg="white",font=("黑体", 30))
        self.label02.pack()

        # 显示图像
        global photo    # 把photo声明成全局变量。如果是局部变量,本方法执行完毕后,图像对象销毁,窗口显示不出图像。
        photo = PhotoImage(file="imgs/a.gif")
        self.label03 = Label(self, image=photo)
        self.label03.pack()

        self.label04 = Label(self, text="小白小白yyds!",
                             borderwidth=5,relief="groove",justify="right")
        self.label04.pack()


if __name__ == '__main__':
    root = Tk()
    root.geometry("600x560+300+400")
    app = Application(master=root)
    root.mainloop()

运行结果: 

GUI 图形用户界面编程(三)基本框架与Label的使用_第3张图片

你可能感兴趣的:(gui编程,gui,python,前端)