现在随着科技发展,计算机语言也越发丰富,找一个写代码简单的文章越来越难,也越来越少的大佬愿意去写简单的教程,现在我就简单的写一个关于tkinter的简单制作。
一、了解tkinter的常用组件
1.组件及功能
Button | 窗体按钮 |
Canvas | 画布,用于绘制直线、椭圆、多边形等各种图像 |
Checkbutton | 复选框 |
Entry | 单行文本框 |
Frame | 框架,可作为其他组件的容器,常用来对组件进行分组 |
Label | 标签,常用来显示单行文本 |
Listbox | 列表框 |
Menu | 菜单 |
Message | 多行文本框 |
Radiobutton | 单选按钮,同一组中的单选按钮任何时刻只能有一个处于选中状态 |
Scrollbar | 滚动条 |
Toplevel | 常用来创建新的窗 |
2.本篇文章讲解Button、Entry、Label、Message的布局教程,当然这这是我的个人布局方式,如果有更好的,可以不使用我的布局方式。
1.引入tkinter
import tkinter #先引入tkinter
2.一般我们窗体制作的方式都是以下流程
1.创建空白面板(设置面板的宽和高及标题)
root=tkinter.Tk() #创建窗体root,root是一个人为随机定义的对象名
root.geometry('500x200+600+300') #设置root窗体宽高和显示在电脑桌面的位置,
#500x200对应的是宽500个像素,高200个像素,
#位于桌面x轴的600个像素,y轴的300个像素
root.title('窗口标题') #设置root窗体的标题
2.创建组件(将组件放入指定窗体,设置组件属性比如对齐方式、初始值、字体大小)
3.设置组件在窗体的位置及宽高
lbEn=tkinter.Label(root,text='标签1:') #括号的root表示将标签放入root窗体中,text为标签内容
lbEn.place(x=150,y=20,height=30,width=60) #place是设置此标签所在窗体的x轴和y轴上的位置以及标签的宽高
EntryEn=tkinter.Entry(root) #设置文本框,因为文本框一般是用来键盘输入内容,所以没有text
EntryEn.place(x=200,y=25,height=25,width=150) #place同上
lbCh=tkinter.Label(root,text='标签2:')
lbCh.place(x=150,y=50,height=30,width=60)
e=tkinter.StringVar() #定义一个tkinter变量,这个变量可以改变组件的相关内容
MessCh=tkinter.Message(root,relief=tkinter.SUNKEN,textvariable=e) #设置多行文本框
#多行文本框默认没有边框显示,因此需要设置relief的值
#这里我设置了textvariable的意思是Message的内容随e变量的变化
MessCh.place(x=200,y=60,height=80,width=150)
#e变量要使用set来获取内容显示在Message中
#比如e.set('你好'),那么Message上就显示‘你好’
button=tkinter.Button(root,text='按钮',command=fun) #按钮组件可以看作人控制的循环体,
#因为按钮中有command属性,command一般用来调用函数
button.place(x=230,y=150,height=30,width=60)
root.mainloop()
# mainloop()是窗体必调用的,它的功能是让窗体一直显示,因此为什么有些同学写窗体时运行后窗体显示一下就消失了,原因就是因为没有mainloop()
3.下面是一个完整代码例子:
import tkinter
root=tkinter.Tk()
root.geometry('500x200+600+300')
root.title('窗口标题')
lbEn=tkinter.Label(root,text='标签1:')
lbEn.place(x=150,y=20,height=30,width=60)
EntryEn=tkinter.Entry(root)
EntryEn.place(x=200,y=25,height=25,width=150)
lbCh=tkinter.Label(root,text='标签2:')
lbCh.place(x=150,y=50,height=30,width=60)
e=tkinter.StringVar()
MessCh=tkinter.Message(root,relief=tkinter.SUNKEN,textvariable=e)
MessCh.place(x=200,y=60,height=80,width=150)
def fun():
e.set(EntryEn.get()) #获取单行文本框内容并将内容显示在多行文本框上
button=tkinter.Button(root,text='按钮',command=fun) #command调用上面的fun函数
button.place(x=230,y=150,height=30,width=60)
root.mainloop()
4.视频演示:
5.总结:
- 首先创建空白窗体tkinter.Tk()
- 创建组件并设置位置及属性,一些属性是很多组件都可以设置的
- 特别的通常Label可设置text标签内容,Button可设置command调用函数,relief设置边框样式,可定义变量tkinter.StringVar()来改变组件的显示内容
- 注意写完整体代码后要在最后面调用mainloop()