小朋友们好,大朋友们好!
我是猫妹,一名爱上Python编程的小学生。
和猫妹学Python,一起趣味学编程。
![](http://dingyue.ws.126.net/2023/0629/6bee9bccj00rx0qax013gc000o1010lm.jpg)
什么是控件
一个GUI应用程序是由许多组件组成的,这些组件被称为控件。
把控件排列在容器上,加上相关代码,程序就差不多就做好啦!
在Tkinter中,可以通过Widget类的子类创建各种控件。
关于控件,我们逐一简单学习下。
要知道,控件在很多GUI程序上都会使用到,思想是相同的。
今日目标
实现下面效果:
![](http://dingyue.ws.126.net/2023/0629/13c382c7j00rx0qav002uc000mh00hmm.jpg)
![](http://dingyue.ws.126.net/2023/0629/be103627j00rx0qav002oc000mj00hrm.jpg)
跟踪控件的值
网站开发,分为前端和后端。
前端可以理解为,一个漂亮吸引人的界面。
后端呢?就是各种数据。
![](http://dingyue.ws.126.net/2023/0629/0813dbeaj00rx0qau000fc000m800b4m.jpg)
Tkinker支持部分控件和变量的双向绑定,通过这种方式保持数据一致性。
实际上,只需要将变量传递给控件的textvariable、listvariable、variable等参数即可。
textvariable、listvariable和控件内显示文本内容相关。
variable是控件的其他参数。
同时,Tkinker对变量类型也有要求,不能是普通类型变量,必须是Tkinker模块中variable类的子类,比如:
- IntVar类:整数类型变量
- DoubleVar类:浮点类型变量
- StringVar类:字符串类型变量
- BooleanVar类:布尔类型变量
Variable类有2个方法,get方法和set方法,用于获取变量的值和设置变量的值。
![](http://dingyue.ws.126.net/2023/0629/cbab22daj00rx0qav002rc000j600nzm.jpg)
标签(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(默认)
![](http://dingyue.ws.126.net/2023/0629/0b592472j00rx0qau0017c000ss00n4m.jpg)
relief表示标签的边框样式,其值包括flat(默认),sunken,raised,groove,ridge
textvariable用于修改标签文本内容,必须和variable类型的变量进行绑定
参考代码:
import tkinter as tkroot = 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 tkroot = 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()
![](http://dingyue.ws.126.net/2023/0629/2b2e88e9j00rx0qav004ac000u001uom.jpg)
怎么样?
你学会了吗?
![](http://dingyue.ws.126.net/2023/0629/25334eeej00rx0qau000zc000go00h2m.jpg)
好了,我们今天就学到这里吧!
如果遇到什么问题,咱们多多交流,共同解决。
我是猫妹,咱们下次见!
热门跟贴