肝货,详解 tkinter 图形化界面制作流程!
作者 | 黄伟呢
来源 | 数据分析与统计学之美
本期案例是带着大家制作一个属于自己的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()
结果如下:
往
期
回
顾
技术
Python多层级索引的数据分析
资讯
红帽、Docker、SUSE在俄停服
技术
太强了!Python开发桌面小工具
技术
一行Python代码能干嘛?来看!
分享
点收藏
点点赞
点在看
肝货,详解 tkinter 图形化界面制作流程!相关推荐
- 又一个4000字肝货,详解tkinter图形化界面制作流程!
本期案例是带着大家制作一个属于自己的GUI图形化界面->用于设计签名的哦(效果如下图),是不是感觉很好玩,是不是很想学习呢?限于篇幅,今天我们首先详细讲述一下Tkinter的使用方法.本来不准备 ...
- Python + Tkinter 图形化界面设计1 —— 第一个图形化界面
图形化界面设计的基本理解 Python自带了tkinter 模块,实质上是一种流行的面向对象的GUI工具包 TK 的Python编程接口,提供了快速便利地创建GUI应用程序的方法.其图像化编程的基本步 ...
- Python中Tkinter 图形化界面设计(详细教程)
Python-Tkinter 图形化界面设计(详细教程) 一.图形化界面设计的基本理解 二. 窗体控件布局 2.1 根窗体呈现示例 2.2 tkinter 常用控件 2.2.1常用控件 2.2.2 控 ...
- Python系列 | 基于Tkinter图形化界面实现课堂点名系统
课堂点名器实现的效果: exe程序已打包如下,欢迎大家下载使用!!! 链接:课堂点名系统 提取码: qx18 一.核心功能设计 课堂点名系统实现的思路大致为可以自定义设置班级学生姓名或者默认通过学号进 ...
- python做桌面应用程序_Python如何实现图形化界面制作为桌面软件?
我觉得这个问题提的有点不清楚,从两个角度理解吧. 1. Python图形化开发,我觉得第1个回答满对的,我再详细说说. 2. Python程序打包,其实是第2个回答的内容,少了平台的限定,如果只是wi ...
- python——Tkinter图形化界面及threading多线程
Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macinto ...
- 学生管理系统-Python tkinter图形化界面+sqlserver+柱状图
参考了大佬的,把mysql数据库改成了sqlserver 附上大佬的代码链接 https://blog.csdn.net/qq_45811949/article/details/106065845?o ...
- jmeter吞吐量图形显示_Jmeter系列(43)- 详解 Jmeter 图形化 HTML 压测报告之 Charts 模块...
如果你想从头学习Jmeter,可以看看这个系列的文章哦 Charts 介绍 包含了各种详细信息图表,比 GUI 模式的图表好看且易懂多了! 做性能测试,如何发现是否有性能瓶颈?必须从结果图表中找到鸭! ...
- 【Python自然语言处理+tkinter图形化界面】实现智能医疗客服问答机器人实战(附源码、数据集、演示 超详细)
需要源码和数据集请点赞关注收藏后评论区留言私信~~~ 一.问答智能客服简介 QA问答是Question-and-Answer的缩写,根据用户提出的问题检索答案,并用用户可以理解的自然语言回答用户,问答 ...
最新文章
- CentOS安装VSFTP及配置用户
- lvs的调度算法有几种_LVS:三种负载均衡方式比较
- python字典默认输出键还是值_说说在 Python 字典中如何在读取不存在的键时得到一个默认值...
- BootstrapVue UI组件
- [原创]K8_C段旁注工具6.0 新增SMB漏洞扫描
- java词汇速查手册_java 词汇表速查手册
- php标准库string,PHP中的一些标准库
- python最适合做什么-python能做什么,适不适合新手学?
- 浅谈智能语音交互,看一个Windows语音识别程序
- 还在繁琐的敲MVP接口和实现类吗,教你一秒搞定。
- realtek audio console无法连接rpc服务_笔记本网络连接图标不见了怎么办?
- Atitit.病毒木马的快速扩散机制原理nio 内存映射MappedByteBuffer
- 百度AI攻略:iOCR自定义模板功能
- mac如何配置环境变量
- swagger常用注解
- 直线分割平面的公式_折线(含直线)分割平面(图文)解析
- 泰坦尼克:机器从灾难中学习_用于灾难响应的机器学习研究:什么才是好的论文?...
- mysql secure file_mysql load data secure-file-priv问题
- linux内核page结构体的PG_referenced和PG_active标志
- 3、流量分析--分组TopN统计