python写前端图形界面_Python图形用户界面(GUI)的实现之tkinter

使用工具: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

你可能感兴趣的:(python写前端图形界面)