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
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,657评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,662评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,143评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,732评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,837评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,036评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,126评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,868评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,315评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,641评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,773评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,859评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,584评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,676评论 2 351

推荐阅读更多精彩内容