tkinter简单的入门教程
1、#开袋后,第一步先测试一下食物是否已经准备好了
#tkinter 测试
import tkinter #导入tkinter库
tkinter._test() #使用内置的test进行测试
#运行的效果

2、#接下来我们来创建一个简单的窗口
import tkinter as tk
root = tk.Tk() #对Tk这个类实例化,即创建root实例
root.title("窗口名") #设置窗口名
root.geometry("400x200+100+100") #设置窗口大小,窗口的初始位置
root.resizable(False,True) #设置只能调整窗口的Y方向大小
root.mainloop() #进行事件循环,把它当作三销内部的一个执行动作
#运行的效果如下

3、#这里是“标签”组件的使用
import tkinter as tk
root = tk.Tk()
root.title("使用标签")
root.geometry("400x200+100+100")
root.resizable(False,False) #禁止调整窗口大小
my_label = tk.Label(root,text="标签内容放在这里",background="yellow",font=("Arial",12),width=15,height=2) #设置Label对象及属性
my_label.pack() #放置标签"my_label"
root.mainloop()
#运行的效果如下

4、#按钮的使用相对标签要更难嚼一点,当然也就一点点而已
import tkinter as tk #照常导入库
root = tk.Tk()
root.title("使用按钮")
root.geometry("400x200")
#定义单击按钮动作,注意:定义按钮动作的代码要在写在放置按钮的前面
def 单击按钮():
lb = tk.Label(root,text="单击按钮后显示的内容!",background="yellow",font=("Arial",12),width=18,height=2) #设置Label对象及属性
lb.pack()
#设置Button对象及属性
my_button = tk.Button(root,text="按钮上的内容!",background="pink",font=("Arial",12),width=18,height=2,command=单击按钮)
#放置按钮
my_button.pack()
root.mainloop()
#我单击按钮两次的效果

5、#前面的例子中都用到了pack方法,pack方法是良杰tkinter中的一种布局方式,关于如何使用pack布局,下面这段代码可以好好体会一下
from tkinter import *
root=Tk()
root.title("pack布局")
Button(root,text="A",background="pink").pack(side=LEFT,expand=YES,fill=Y)
Button(root,text="B",background="#FFFFFF").pack(side=TOP,expand=YES,fill=BOTH)
Button(root,text="C",background="pink").pack(side=RIGHT,expand=YES,fill=NONE,anchor=NE)
Button(root,text="D",background="pink").pack(side=LEFT,expand=NO,fill=Y)
Button(root,text="E",background="pink").pack(side=TOP,expand=NO,fill=BOTH)
Button(root,text="F",background="pink").pack(side=BOTTOM,expand=YES)
Button(root,text="G",background="pink").pack(anchor=SE)
root.mainloop()
#background是设置按钮(其他组件一样)的背景颜色,pink只要你喜欢可以换成原谅薪婶财绿"green"或者其他颜色,也可以设置成16进制的格式
#.pack()的内容才是这节的要点。side,我百度了一下是侧边、旁边的意思,这不,在看看代码就很明显了嘛,LEFT,TOP,RIGHT,BOTTTOM,四个方向都齐了,表示当前按钮靠哪一边
#expand,我就不去百度了,直接猜是扩张,展开的意思好了,YES,NO表示是否允许按钮在窗口大小调整时自动扩展按钮的大小,要结合fill使用
#fill,看起来就是填充的意思嘛... X,Y,BOTH,NO表示允许哪个方向填充。X,敲!示例中忘了X,算了我已经截好图了,不改了。X代表水平方向,Y是竖直,BOTH是两个方向都允许,NO当然表示都不允许了
#anchor,是锚点,表示磁力粘贴到哪,有E东S南W西N北以及两两结合的些个参数,不过有的两两在具体使用中是不能结合的,在示例中结合side去体会一下其作用
#代码运行后就是这个样子(我稍微调整了一下窗口的大小)

6、#tkinter中除了pack布局外还可以使用grid布局
import tkinter as tk
root=tk.Tk()
tk.Label(root,text="账号:").grid(row=0,sticky='W')
tk.Entry(root).grid(row=0,column=1,sticky='E')
tk.Label(root,text="密码:").grid(row=1,sticky='W')
tk.Entry(root).grid(row=1,column=1,sticky='E')
tk.Button(root,text="登录").grid(row=2,column=1,sticky='E')
root.mainloop()
#grid布局相对直观易用很多,就是网格/表格化嘛,sticky参数跟anchor参数类似,也是东南西北来磁力吸附放置组件的相对位置
#Entry是tkinter中的一个十分常用的组件,输入框组件
#本节代码运行结果如下

7、小结一下,在tkinter中有三种布局方式:
1、pack布局:不用设置,直接使用pack函数就行了
2、grid布局:grid即为网格,它可以把界面设置为几行几列的网格,我们在网格里插入我们想要的元素。这种布局的好处是不管我们怎么拖动窗口,相对位置是不会变的。
3、place布局:它直接使用死板的位置坐标来布局,这样做的最大问题在于我们向窗口添加一个新部件时,又得重新测一遍数据,且我们不能随便地变大或者缩小窗口。
第三种就不讲了,相信我,你不会想去用的,用tkinter就是因为它易用啊,用place布局又何以呢?(说实话,我是不会用。。。)
8、#本节使用get()函数获得Entry中用户输入的内容,使用弹窗提示消息
import tkinter as tk
from tkinter.messagebox import *
root=tk.Tk()
root.title("登录")
def login():
s1=ent1.get()
s2=ent2.get()
if s1=="zxh" and s2=="123":
showinfo("登录","登录成功!")
else:
showerror("警告","账号或密码错误!")
ent1.delete(0,len(s1))
ent2.delete(0,len(s2))
tk.Label(root,text="账号:").grid(row=0,sticky=W)
ent1=tk.Entry(root)
ent1.grid(row=0,column=1,sticky=E)
tk.Label(root,text="密码:").grid(row=1,sticky=W)
ent2=tk.Entry(root)
ent2.grid(row=1,column=1,sticky=E)
tk.Button(root,text="登录",command=login).grid(row=2,column=1,sticky=E)
root.mainloop()
#本节的例子是创建一个模拟登录的窗口,输入正确的账号:zxh和密码:123就弹窗提示登录成功!,否则就弹窗警告账号或密码错误,并清空输入框
#新知识点:get()方法获得Entry输入框的内容,showinfo和showerror弹窗
#运行结果如下

9、tkinter中远不止以上介绍的组件,Python tkinter中有21个核心组件:Toplevel Label Button Canvas Checkbutton Entry Frame LabelFrame
Listbox Menu Menubutton Message OptionMenu PaneWindow Radiobutton Scale Scrollbar Spinbox Text Bitmap Image
对于不要求界面美观的实用主义者来说完全是够用的了。