人生苦短,快学Python!

本期案例是带着大家制作一个属于自己的GUI图形化界面—>用于设计签名的哦(效果如下图),是不是感觉很好玩,是不是很想学习呢?限于篇幅,今天我们首先详细讲述一下Tkinter的使用方法。本来不准备详细讲述这个基础知识,但是我怕那些想学习的同学,学起来不过瘾,还是补充了这一章。

tkinter的简单应用

Tkinter是Python的标准GUI库。Python使用Tkinter可以快速地创建GUI应用程序。当然常用的GUI库还有PyQt5,我们只需要知道这两个常用的即可,如果你真的想学习的话。由于Tkinter属于Python标准库,就不需要使用pip安装,直接导入使用即可。

① 显示窗口
  • root.mainloop()显示窗口;

  • 窗口默认会显示在电脑屏幕的左上角,非常小(后面需要改进);

from tkinter import *
from tkinter import messagebox# 创建窗口:实例化一个窗口对象。
root = Tk()# 显示窗口
root.mainloop()
"""
注意到:该窗口默认的显示位置在哪里,观察我下面的截图。
窗口默认显示在整个电脑屏幕的左上角,并且窗口大小特别小。
"""

结果如下:

注意:上面2行代码,首先实例化一个窗口对象,然后我们展示了这个窗口,让其真正显示出来。接下来我们的操作,就是针对这个窗口的一系列优化操作,请注意:这个优化操作使用的代码,都是放在这2句代码中间。

② 设置窗口大小
  • root.geometry("600x400")调整窗口的大小;

  • 该方法中传入的是"宽x高",但是需要注意这个乘号是小写的英文字母x,而不是这个*表示的乘号;

from tkinter import *
from tkinter import messagebox# 创建窗口:实例化一个窗口对象。
root = Tk()# 窗口大小
root.geometry("600x450")# 显示窗口
root.mainloop()

结果如下:

③ 调整窗口位置(使用的是同一个方法)
  • root.geometry("600x400+374+182")调整窗口的大小+位置;

  • 374,182表示的是窗口顶点,距离电脑左上角的坐标。这个数字怎么得到的呢?直接借助微信截图就可以显示了。

操作代码如下:

from tkinter import *
from tkinter import messagebox# 创建窗口:实例化一个窗口对象。
root = Tk()# 窗口大小
root.geometry("600x450+374+182")# 显示窗口
root.mainloop()

结果如下:

④ 设置窗口的标题
  • root.title()设置窗口的标题;

  • 默认的窗口标题是tk;

from tkinter import *
from tkinter import messagebox# 创建窗口:实例化一个窗口对象。
root = Tk()# 窗口大小
root.geometry("600x450+374+182")#  窗口标题
root.title("我的个性签名设计")# 显示窗口
root.mainloop()

结果如下:

⑤ 添加标签控件,并定位
  • Label(root,text="签名")添加标签控件

  • 第一个参数传入的就是实例化的那个root窗口对象;第二个参数传入的要显示的那个标签文本;

  • 仅仅添加标签控件后,还不行,必须要指定一个位置后,该标签控件才会真正展示出来,即最后需要调用grid()方法后,才会显示标签控件;

from tkinter import *
from tkinter import messagebox# 创建窗口:实例化一个窗口对象。
root = Tk()# 窗口大小
root.geometry("600x450+374+182")#  窗口标题
root.title("我的个性签名设计")# 添加标签控件
label = Label(root)
# 定位
label.grid()# 显示窗口
root.mainloop()

结果如下:

当然你也可以想到,这个方法肯定还可以修改字体样式、字体大小、字体颜色呀?具体怎么操作呢?我们接着往下面看。

from tkinter import *
from tkinter import messagebox# 创建窗口:实例化一个窗口对象。
root = Tk()# 窗口大小
root.geometry("600x450+374+182")#  窗口标题
root.title("我的个性签名设计")# 添加标签控件
label = Label(root,text="签名",font=("宋体",25),fg="red")
"""
text参数用于指定显示的文本;
font参数用于指定字体大小和字体样式;
fg参数用于指定字体颜色;
"""
# 定位
label.grid()# 显示窗口
root.mainloop()

结果如下:

⑥ 添加输入框,并定位
  • Entry(root,font=("宋体",25),fg="red")添加输入框

  • 第一个参数传入的就是实例化的那个root窗口对象;第二个参数可写可不写,指的是我们输入的字体的字体样式和字体大小;第三个参数同样可写可不写,表示的是我们输入的字体的颜色。

  • 同样,仅仅使用上述代码并不会显示输入框,只有调用grid()方法,定位后,才会真正显示这个输入框;

from tkinter import *
from tkinter import messagebox# 创建窗口:实例化一个窗口对象。
root = Tk()# 窗口大小
root.geometry("600x450+374+182")#  窗口标题
root.title("我的个性签名设计")# 添加标签控件
label = Label(root,text="签名",font=("宋体",25),fg="red")
# 定位
label.grid()# 添加输入框
entry = Entry(root,font=("宋体",25),fg="red")
entry.grid()# 显示窗口
root.mainloop()

结果如下:

注意:很明显这样的摆放方式,并不是我们想要的。我们需要调整一下,下面我们专门花一个小节时间,去讲述怎么调整这个摆放位置。

⑦ 调整控件的摆放位置

首先我们需要搞明白,显示窗口究竟采用的是什么样子的布局方式呢?其实是网格式的布局方式。那么什么又是网格式的布局方式呢?excel表格你知道吧,一个个的格子就是网格式的布局方式。

好了!知道了上述原理后,我们现在来真正的调整这个控件摆放位置啦。

from tkinter import *
from tkinter import messagebox# 创建窗口:实例化一个窗口对象。
root = Tk()# 窗口大小
root.geometry("600x450+374+182")#  窗口标题
root.title("我的个性签名设计")# 添加标签控件
label = Label(root,text="签名:",font=("宋体",25),fg="red")
# 定位
label.grid()
"""
label.grid()等价于label.grid(row=0,column=0)
"""
# 添加输入框
entry = Entry(root,font=("宋体",25),fg="red")
entry.grid(row=0,column=1)
"""
row=0,column=1表示我们将输入框控件,放在第1行第2列的位置;
python语言中,这个下标是从0开始的。
"""
# 显示窗口
root.mainloop()

结果如下:

⑧ 添加点击按钮
  • Button(root,text="签名设计",font=("宋体",25),fg="red")添加输入框

  • 第一个参数传入的就是实例化的那个root窗口对象;第二个参数展示的是我们这个点击按钮的标签;第三个参数可写可不写,指的是点击按钮字体的字体样式和字体大小;第四个参数同样可写可不写,表示的是点击按钮字体的颜色。

  • 同样,仅仅使用上述代码并不会显示输入框,只有调用grid()方法,定位后,才会真正显示这个点击按钮;

from tkinter import *
from tkinter import messagebox# 创建窗口:实例化一个窗口对象。
root = Tk()# 窗口大小
root.geometry("600x450+374+182")#  窗口标题
root.title("我的个性签名设计")# 添加标签控件
label = Label(root,text="签名:",font=("宋体",25),fg="red")
# 定位
label.grid()# 添加输入框
entry = Entry(root,font=("宋体",25),fg="red")
entry.grid(row=0,column=1)# 添加点击按钮
button = Button(root,text="签名设计",font=("宋体",25),fg="blue")
button.grid(row=1,column=1)# 显示窗口
root.mainloop()

结果如下:

至此界面已经简单搭建起来了,接下来要做的就是输入一个名字,点击签名设计后,会显示我的这个签名,此时就需要借助爬虫啦!明天我们将会发布该文的下篇哦,敬请期待。

⑨ 点击按钮自定义功能

这里最后补充这个知识点,我们点击按钮后,总是希望能够给我们返回点什么,所以呢,需要我们自定义函数

from tkinter import *
from tkinter import messageboxdef func():print("我是黄同学")# 创建窗口:实例化一个窗口对象。
root = Tk()# 窗口大小
root.geometry("600x450+374+182")#  窗口标题
root.title("我的个性签名设计")# 添加标签控件
label = Label(root,text="签名:",font=("宋体",25),fg="red")
# 定位
label.grid()# 添加输入框
entry = Entry(root,font=("宋体",25),fg="red")
entry.grid(row=0,column=1)# 添加点击按钮
button = Button(root,text="签名设计",font=("宋体",25),fg="blue",command=func)
button.grid(row=1,column=1)
"""
command=func表示调用最开始定义的func函数。
func函数一定要在这句代码之前,因为这里需要调用这个func函数。
"""
# 显示窗口
root.mainloop()

结果如下:

这是我开发的机器人公众号小号,目前增加了天气查询,955公司名单,关注时间查询;后面还会增加图片功能和每日送书抽奖送书活动,以及调戏功能,欢迎来体验,捧场。

推荐阅读:
入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影
趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影
小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|

年度爆款文案

  • 1).卧槽!Pdf转Word用Python轻松搞定!

  • 2).学Python真香!我用100行代码做了个网站,帮人PS旅行图片,赚个鸡腿吃

  • 3).首播过亿,火爆全网,我分析了《乘风破浪的姐姐》,发现了这些秘密

  • 4).80行代码!用Python做一个哆来A梦分身

  • 5).你必须掌握的20个python代码,短小精悍,用处无穷

  • 6).30个Python奇淫技巧集

  • 7).我总结的80页《菜鸟学Python精选干货.pdf》,都是干货

  • 8).再见Python!我要学Go了!2500字深度分析!

  • 9).发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片

点阅读原文,看B站我的视频!

超全!Tkinter 使用教程!4000字!相关推荐

  1. 超全面的freemarker教程

    转载:http://demojava.iteye.com/blog/800204 以下内容全部是网上收集: FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由 ...

  2. 【pipenv】 快速入门,超全面的pipenv教程!(教你如何快速创建python虚拟环境!)

    文章目录 一.pipenv的快速入门 0.快速上手 1.安装 2.卸载 3.跟新包 4.首次运行 5.删除虚拟环境 6.与虚拟环境相关的常用命令 (0)展示环境中已安装的包 (1)包的安装 (2)包的 ...

  3. 用计算机做图画ppt,ppt怎么做?手机电脑超全PPT制作教程_教你做出完整的PPT

    核心提示:小编整理了两块内容,一个是教大家怎么制作电脑版的PPT,一个是教大家怎么制作手机版的PPT,喜欢的朋友们可以看一下噢! 电脑版PPT制作方法步骤 1.打开"PPT"软件, ...

  4. Office2016超全安装包+教程+素材包

    好资源要懂得分享,分享才能发挥它的价值!!! 链接:https://pan.baidu.com/s/1a2KtdQISCCR79MiI-V7S9w 密码:xr52 拿走,不谢!!!

  5. 超全 ES6 语法教程

    目录 一.let定义变量与const定义常量 二.模版字符串 三.数组的变量的解构赋值 四.对象的变量的解构赋值 五.箭头函数 六.展开运算符 七.函数参数的扩展 八.class类 九.对象的扩展 十 ...

  6. 全字库说文解字字体_整理了10款免费商用中文字体,超好用

    文章来源:logo设计视觉(ID:logoshijue) 字体不能随便用!大家应该经常有听到字体侵权索赔上几十上百万事吧!作为小小的设计师遇上了就倒霉啦!所以,我们要有足够版权意识,没事囤点免费可商用 ...

  7. 【超全教程】SpringBoot 2.3.x 分层构建 Docker 镜像实践

    作者:超级小豆丁 http://www.mydlq.club/article/98/ 目录 什么是镜像分层 SpringBoot 2.3.x 新增对分层的支持 创建测试的 SpringBoot 应用 ...

  8. 如何提取明细表头_超全!197页建筑工程预算实例教程+241页预算明细表,造价轻松算...

    对于一名优秀的造价人来说,算好建筑工程预算是做造价的第一步!也是至关重要的一个环节! 面对大量的图纸信息如何快速提取内容? 如何牢记定额,轻松算量? 怎么能够做到预算最低偏差? 那么这些就是考验造价员 ...

  9. cad计算机中怎么用除号,CAD中特殊符号如何输入?超全教程,一看就懂!

    原标题:CAD中特殊符号如何输入?超全教程,一看就懂! CAD制图不同行业有不同的设计符号,但是你知道哪些特殊的符号要怎么输入呢?一旦入门CAD设计,你必须要熟悉了解这些符号输入操作. 本文会和大家分 ...

  10. fiddler超全使用教程

    知识永远学不完,但多懂一点知识就会让生活更轻松一点! 又是元气满满的一天呐 fiddler超全使用教程 首先进行HTTP协议配置-设置代理前提 (web代理服务器中IE浏览器默认代理为:127.0.0 ...

最新文章

  1. 阅读笔记 CCL: Cross-modal Correlation Learning with Multi-grained Fusion by Hierarchical Network
  2. 什么是RDF resource Description framework
  3. 前端最佳实践之可维护性
  4. rhel6下组建两台主机的HA集群
  5. 灯塔的出现给那些有想法,有能力而又缺乏资金的社区人士提供了一条途径
  6. ROS 学习笔记(一):工作空间+功能包创建
  7. dj电商-模型类设计-商品模块数据表
  8. JavaSE的输入流、输出流
  9. Java 中如何实现保留两位小数 — DecimalFormat
  10. (C/C++) Link List - C 語言版本
  11. 练习题2 -和可被 K 整除的子数组
  12. 研究生英语写译教程(提高级/第三版)_翻译篇 笔记及答案
  13. 家里可以装网吧无盘服务器吗,我在家里想装个网吧系统,求好的网吧系统。请专业的来个连接我...
  14. 智能家居雷声越来越大 雨点还是那么小
  15. 解决steam饥荒联机版(DST Dont Starve Together)启动时error during initialization的方法
  16. 如何在VR全景中嵌入AI数字人功能?打造云端体验感
  17. Python_pygame库学习笔记(1):pygame的由来,特点以及模块简介
  18. 创新与赛道定义 ——产品定义和建立赛道是个技术活
  19. 一个基于Python数据大屏可视化开源项目
  20. 如何使用计算机网络打印机,如何共享网络打印机 共享网络打印机教程详解

热门文章

  1. mysql 日期查询 今天、明天、本周、七天内、本月、后一个月
  2. html表格填充空白单元格,快速填充空白单元格【应对步骤】
  3. 图解对称加密与非对称加密
  4. python弹出框多一个空白框_python – 自定义/删除Django选择框空白选项
  5. vue3+ts实现todolist功能
  6. Win7(x64) + Cygwin + ns2.35 安装配置教程
  7. 计算机系大一开学需要带什么,大一新生上学要不要带电脑?辅导员给出建议,家长可以参考...
  8. php图片输出特殊符号,php输出特殊符号
  9. u深度制作linux启动盘制作工具,u深度u盘启动盘制作工具教程
  10. 记一次Linux文件系统引发的项目启动错误(war包没有问题只有指定目录启动报错)