0
点赞
收藏
分享

微信扫一扫

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

今天你读书了吗 2022-02-02 阅读 43

目录

🍉 GUI编程整体描述

 🍉常用的组件汇总

🍉Label 标签详解

🍉 Label标签实例

🍉运行结果: 


🍉 GUI编程整体描述

 

  • Misc Wm:

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

  • Tk

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

  • Pack、Place、Grid

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

  • BaseWidget

BaseWidget 是所有组件的父类

  • Widget

 

 🍉常用的组件汇总

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(标签)有这样一些常见属性:

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()

🍉运行结果: 

举报

相关推荐

0 条评论