Python GUI编程利器:Tkinker中的标签和按钮(2)
小朋友们好,大朋友们好!
我是猫妹,一名爱上Python编程的小学生。
和猫妹学Python,一起趣味学编程。

什么是控件
一个GUI应用程序是由许多组件组成的,这些组件被称为控件。
把控件排列在容器上,加上相关代码,程序就差不多就做好啦!
在Tkinter中,可以通过Widget类的子类创建各种控件。
关于控件,我们逐一简单学习下。
要知道,控件在很多GUI程序上都会使用到,思想是相同的。
今日目标
实现下面效果:


跟踪控件的值
网站开发,分为前端和后端。
前端可以理解为,一个漂亮吸引人的界面。
后端呢?就是各种数据。

Tkinker支持部分控件和变量的双向绑定,通过这种方式保持数据一致性。
实际上,只需要将变量传递给控件的textvariable、listvariable、variable等参数即可。
textvariable、listvariable和控件内显示文本内容相关。
variable是控件的其他参数。
同时,Tkinker对变量类型也有要求,不能是普通类型变量,必须是Tkinker模块中variable类的子类,比如:
IntVar类:整数类型变量
DoubleVar类:浮点类型变量
StringVar类:字符串类型变量
BooleanVar类:布尔类型变量
Variable类有2个方法,get方法和set方法,用于获取变量的值和设置变量的值。

标签(Label类)
创建标签对象方法:
Label(master,text,background,width,height,cursor,image,bitmap,anchor,relief,textvariable)
master表示标签的父容器
text表示标签的文本内容
background表示标签的背景颜色
width表示标签的宽度
height表示标签的高度
cursor表示鼠标移动上去光标的形状,其值有arrow(默认值),circle,cross,plus
imge表示标签的图片,类型为PhotoImage或BitmapImage,或其他兼容类型
bitmap表示标签的位图,如果设置了image则可以忽略它
anchor表示标签中文本内容或图片位置,取值有n,s,,w,e,ne,nw,sw,se和center(默认)

relief表示标签的边框样式,其值包括flat(默认),sunken,raised,groove,ridge
textvariable用于修改标签文本内容,必须和variable类型的变量进行绑定
参考代码:
import tkinter as tk
root = tk.Tk()
root.title('标签(Label类)')
root.geometry('800x600+400+300')
root.resizable(width=False, height=False)
# 在创建完控件之后,必须调用Tkinter中的布局管理器才可以正常显示控件。pack就是Tkinter中的布局管理器之一
tk.Label(root, text="标签", background='yellow', height='5', width='50', cursor="plus").pack()
tk.Label(root, text="标签", background='pink', height='5', width='50', cursor="cross", anchor='e', relief='groove').pack()
# 通过使用PhotoImage创建图片对象
photo = tk.PhotoImage(file='pic/maomei.png')
tk.Label(root, image=photo).pack()
root.mainloop()
按钮类(Button类)
创建按钮对象方法:
Button(master,text,background,width,height,image,anchor,relief,command,textvariable,state)
大部分参数和标签类(Label类)参数是一致的。
除了command和state。
command表示按钮关联的函数。即函数点击时,要执行的函数
state表示按钮的状态,取值有normal(默认),active,disable
参考代码:
import tkinter as tk
root = tk.Tk()
root.title('按钮(Button类)')
root.geometry('800x600+400+300')
root.resizable(width=False, height=True)
# 定义图片列表,以达到保存图片对象引用的目的
lt_pic = []
def onclick():
print('关注我,为学习加油')
def createButton():
tk.Button(root, text='我是一个按钮', width='20',heigh='2',background='pink', relief='sunken', anchor='e', command=onclick).pack()
photo = tk.PhotoImage(file='pic/maomei.png')
tk.Button(root, image=photo, command=onclick).pack()
# 将图片对象添加到图片列表中
lt_pic.append(photo)
createButton()
root.mainloop()

怎么样?
你学会了吗?

好了,我们今天就学到这里吧!
如果遇到什么问题,咱们多多交流,共同解决。
我是猫妹,咱们下次见!