多语言展示
当前在线:1788今日阅读:103今日分享:49

tkinter简单的入门教程

Python的GUI编程中,tkinter不是最优秀、功能最强大的,但却一定是最简洁的。tkinter是python的标准库,无需安装,开袋即食,极易入门。本教程便通过简单的示例介绍tkinter中最常用的组件。
工具/原料

能安装并运行python3.0及以上的设备

方法/步骤
1

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

2

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

3

#这里是“标签”组件的使用import tkinter as tkroot = 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()#我单击按钮两次的效果

6

#tkinter中除了pack布局外还可以使用grid布局import tkinter as tkroot=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 tkfrom 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对于不要求界面美观的实用主义者来说完全是够用的了。

注意事项

到了这里,相信大家对tkinter的GUI有个大致的了解了,可以决定是否稍微深入一点还是撤退啦。

推荐信息