图形用户界面tkinter之标签Label使用
导入tkinter模块
from tkinter import *
构建窗口对象
root = Tk()
窗口属性设置
#窗口
root.title('窗口')
#窗口大小
root.geometry('200x300')
#设定窗口背景颜色
root.configure(bg = "blue")
#更改窗口图标
root.iconbitmap('icon文件路径')
#让程序持续执行
root.mainloop()
结果图示
Mark:一般给窗口设置、背景颜色、大小、图标应该就够用了。需要注意的是设置窗口大小的函数geometry的参数单位是像素,所呈现的效果就是运行程序出现时的窗口大小。设置背景颜色的函数configure的参数是键值的形式。另外还可以限制窗口大小,比如限定窗口最大化、最小化:maxsize、minsize。运行程序时,呈现的窗口最大化、最小化:state、iconify。还可以更改窗口的默认图标:iconbitmap。
标签label
标签里面可以放置文本和图片。
文本标签
Label(root,text='Hello tkinter',
fg='white',bg='red',
height=1,width=15,anchor='nw').pack()
结果图示
如果文本内容比较长
比如text=‘I will white a text, in which there are many words,and the method of the condition will be given’
Label(root,
text='I will white a text, in which there are many words,and the method of the condition will be given',
fg='white',bg='red',
height=8,width=15,anchor='nw',
wraplength=100,justify='left').pack()
结果图示
Mark:当我们在标签中放置文本时,为了让文本在适当的位置,正常的显示,需要用到label的一些属性。比如设置label标签的高度、宽度、背景颜色:height、weight、bg。设置字体的颜色、大小:fg、font。文本在label标签中的位置:anchor。文本中内容的对齐方式:justify。如果文本内容过长,可以调节height、width、wraplength。其中wraplenght表示的是多少像素单位后换行。当标签中放置的是文本,height、width指的是多少字符单位。
补充:涉及到单位的有geometry、height、width、wraplenght。geometry用于设置窗口大小,是像素单位。wraplength指的是一段文本多长开始换行,指的是像素单位。而height、width在标签label中放置文本时,指的是字符单位,用于设置label标签的大小,方便展示出文本内容。
图片标签
python内置图片( bitmap属性)
Label(root,bitmap='error').pack()
结果图示
error可以换为hourglass、info、questhead等等
image属性显示图片
创建image对象
im = PhotoImage(file = r'C:\Users\Administrator\Desktop\动物.png')
创建label对象
Label(root,image = im).pack()
结果图示
Mark:在标签label中,使用python内置的图片,需要使用属性bitmap,bitmap的值可以查找相关文档。如果想放置自己的照片,需要使用image属性,image的值是一个image对象。用类PhotoImage将对应的图片转化为image对象使用。
supplement
文本图片的组合 属性compound
xtext='中国风'
im = PhotoImage(file = r'C:\Users\Administrator\Desktop\喜鹊桃花折扇.png')
Label(root,text=xtext,fg='red',font=('楷体',40),
image = im,compound='center').pack()
结果图示
Mark:在标签label中同时放入文本和图片,要使用label的compound属性。
使用tkinter解决的一些小问题
Label的weight参数
之前做的一个项目中也是用label显示图片,height参数可以使用
tk.Label(self.root, image=self.p[i] ,width = 200,height = 200 ).place(x =x0-20,y=y0+50)
但是最近做的这个却提示没有这个参数,所以就无法更改显示的图片大小,找了很长时间没有解决,最后通过别的库将图片改变大小,然后再显示回来,至于最终要使用哪个图片传给别的函数可以自己选择
def photo_show(p):
# 待处理图片存储路径
im = Image.open(p)
# Resize图片大小,入口参数为一个tuple,新的图片大小
imBackground = im.resize((200, 200))
# 处理后的图片的存储路径,以及存储格式
imBackground.save('show.png')
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。