使用工具:pycharm
使用模块:tkinter
前言:
前几期我们学会了
Python爬取真气网天气数据
Python脚本转exe可执行文件
RStudio实现空气质量数据可视化
总是觉得少了一点东西,
是什么呢?
就在今天照镜子的时候,
真相终于出现了。
常言道:
始于颜值,陷于颜值,
忠于颜值,痴于颜值。
在这个靠脸吃饭的时代,
我的程序姑娘却一直以素颜示人,
纵然倾国倾城,沉鱼落雁,
也难敌街边小巷中的花红柳绿。
想到这我便狠下心来,
就算砸锅卖铁,
也要为程序姑娘买一套像样的化妆品。
皇天不负苦心人,
经过了一下午的摸爬滚打,
总算找到了一组套装——tkinter。
推荐文章:
http://effbot.org/tkinterbook/
一、tkinter简介
可用于实现图形用户界面,
简单点说,tkinter前素颜,
tkinter后大眼、瘦脸、加磨皮。
有图有真相。
整容前:
image
整容后:
image
瞬间x格就提起来了,
婚前整一整,
婚后幸福又xx,
编不出来了,sorry
二、框架搭建(注意pack)
先看看最简单的GUI,
虽然只有一个窗口,
但却是称霸武林的第一步。
#调用 tkinter 并简写为 tk
import tkinter astk
#创造一个根控件 root 以后调用
root = tk.Tk()
#将根控件 root 的标题改为“此地古同”
root.title('此地古同')
#窗口的主循环
root.mainloop()
image
接下来是GUI窗口内容填充,
就像搭积木一样
可以搭框架(Frame)、输入框(Entry)、标签(Label)、按钮(Button)等
其中框架(Frame)是一个容器,(很重要)
import tkinter astk
root = tk.Tk()
root.title('此地古同')
#设置 GUI 界面的宽度和高度
width = 300height = 150#取出电脑屏幕的宽度和高度
screenwidth =root.winfo_screenwidth()
screenheight =root.winfo_screenheight()
#将 GUI 界面置于电脑屏幕中央
root.geometry('%dx%d+%d+%d' %(width,height,(screenwidth-width)/2,(screenheight-height)/2))
#第一个参数 root 为父母,意思是在 root 中搭建
frame1 =tk.Frame(root,bg='red',width=300,height=75)
#将 frame1 打包处理,否则界面无 frame1 部件
frame1.pack()
frame2 =tk.Frame(root,bg='green',width=300,height=75)
frame2.pack()
root.mainloop()
image
OK,看来积木默情况下是一行一行搭的,
能不能一列一列的搭积木呐,能,
处理一下pack()就行了
import tkinter astk
root = tk.Tk()
root.title('此地古同')
width = 300height = 150screenwidth =root.winfo_screenwidth()
screenheight =root.winfo_screenheight()
root.geometry('%dx%d+%d+%d' %(width,height,(screenwidth-width)/2,(screenheight-height)/2))
frame1 =tk.Frame(root,bg='red',width=150,height=150)
frame1.pack(side=tk.LEFT)
frame2 =tk.Frame(root,bg='green',width=150,height=150)
frame2.pack(side=tk.RIGHT)
root.mainloop()
image
三、进阶代码
OK,接下来就直接上frame的嵌套了
import tkinter astk
root = tk.Tk()
root.title('空气质量爬取器')
w= 350
h = 140
ws =root.winfo_screenwidth()
hs =root.winfo_screenheight()
root.geometry('%dx%d+%d+%d'% (w,h,(ws-w)/2,(hs-h)/2))#先构造一个 frame 框架准备装 frame1 和 frame2
frame =tk.Frame(root)
frame.pack(pady=10)#构造 frame1 装 label1和 label2
frame1 =tk.Frame(frame)
frame1.pack(fill=tk.X,side=tk.LEFT)
label1 =tk.Label(frame1,text='查询城市:',font='华文中宋').pack()
label2 =tk.Label(frame1,text='查询时间:',font='华文中宋').pack()#构造 frame2 装 entry1和entry2
frame2 =tk.Frame(frame)
entry1 =tk.Entry(frame2,font='华文中宋',width=15)
entry1.pack(pady=2)
entry2 =tk.Entry(frame2,font='华文中宋',width=15)
entry2.pack()
frame2.pack(fill=tk.X)#构造一个函数供下面的 command1 使用
def say_hi():
# get方法返回两个entry 输入的值
print(entry1.get(),entry2.get())
frame3 =tk.Frame(root)
# command = function可调用上面定义的函数
command1 =tk.Button(frame3,text='查询',command=say_hi,width=15)
command1.pack(fill=tk.X,side=tk.LEFT)
command2=tk.Button(frame3,text='退出',width=15,command=frame.quit).pack(side=tk.RIGHT)
frame3.pack()
root.mainloop()
image
四、总结
搭积木呀搭积木,
先根据目的画基本框架,
image
框架之中嵌套框架,
image
最后用代码实现过程,finish
image
硬广:个人公众号:此地古同
image