Label(标签)主要用于显示文本信息,也可以显示图像
Label(标签)有这样一些常见属性
width和height: 指定宽度和高度
font: 指定字体和字体大小,如:font = (font_name,size)
image: 显示在 Label 上的图像,目前 tkinter 只支持 gif 格式
fg和bg: fg(foreground):前景色、bg(background):背景色
justify: 针对多行文字的对齐,可设置 justify 属性,可选值"left", "center" or "right"
#coding=utf-8
'''
使用面向对象创建典型的GUI
'''
from tkinter import *
from tkinter import messagebox
class Application(Frame):
def __init__(self,master): #重定义父类的构造方法
super().__init__(master) #显示的调用的父类的构造方法,才能调用父类的实例属性
self.master=master
self.pack()
self.createWidget()
def createWidget(self):
'''
创建一个标签:label01,text文本值为"送你一朵花",宽10,高2,背景色黑色,前景色白色
'''
self.label01=Label(self,text="送你一朵花",width=10,height=2,
bg="black",fg="white")
self.label01.pack()
'''
font设置字体
'''
self.label02=Label(self,text="玫瑰花",width=10,height=2,
bg="blue",fg="white",font=("黑体",20))
self.label02.pack()
'''
显示图像
为什么要声明photo为全局变量?
因为root.mainloop()为循环调用,当app = Application(root)只执行完一次时,本方法里该photo对象就被销毁了,
一次是无法在窗口显示图片的,所以需要把photo声明为全局变量,这样就算只执行一次该方法,该photo对象也还存在,即
窗口中可显示图片了。
'''
global photo
#定义图片对象
photo=PhotoImage(file="./imgs/logo.gif")
self.label03=Label(self,image=photo)
self.label03.pack()
'''
显示多行文本
borderwidth=2设置边框粗细
relief="solid"设置边框3D效果
justify="left"左对齐
'''
self.label04=Label(self,text="百战学员\n学无止境呢",
borderwidth=2,relief="solid",
justify="left")
self.label04.pack()
if __name__=="__main__":
root=Tk() #创建应用程序主窗口对象
root.title("面向对象式的GUI")
root.geometry("500x300+300+250")
app = Application(root) #主窗口对象传递给类Application创建类对象
root.mainloop()
label标签1.png
label标签2.png
label标签3.png
label标签4.png
网友评论