Python+Tkinter制作专属图形化界面


Posted in Python onApril 01, 2022

介绍

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

Python+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()
"""
注意到:该窗口默认的显示位置在哪里,观察我下面的截图。
窗口默认显示在整个电脑屏幕的左上角,并且窗口大小特别小。
"""

结果如下:

Python+Tkinter制作专属图形化界面

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

设置窗口大小

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

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

from tkinter import *
from tkinter import messagebox

# 创建窗口:实例化一个窗口对象。
root = Tk()

# 窗口大小
root.geometry("600x450")

# 显示窗口
root.mainloop()

结果如下:

Python+Tkinter制作专属图形化界面

调整窗口位置(使用的是同一个方法)

root.geometry("600x400+374+182")调整窗口的大小+位置;

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

Python+Tkinter制作专属图形化界面

操作代码如下:

from tkinter import *
from tkinter import messagebox

# 创建窗口:实例化一个窗口对象。
root = Tk()

# 窗口大小
root.geometry("600x450+374+182")


# 显示窗口
root.mainloop()

结果如下:

Python+Tkinter制作专属图形化界面

设置窗口的标题

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

默认的窗口标题是tk;

from tkinter import *
from tkinter import messagebox

# 创建窗口:实例化一个窗口对象。
root = Tk()

# 窗口大小
root.geometry("600x450+374+182")

#  窗口标题
root.title("我的个性签名设计")

# 显示窗口
root.mainloop()

结果如下:

Python+Tkinter制作专属图形化界面

添加标签控件,并定位

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()

结果如下:

Python+Tkinter制作专属图形化界面

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

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()

结果如下:

Python+Tkinter制作专属图形化界面

添加输入框,并定位

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()

结果如下:

Python+Tkinter制作专属图形化界面

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

调整控件的摆放位置

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

Python+Tkinter制作专属图形化界面

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

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()

结果如下:

Python+Tkinter制作专属图形化界面

添加点击按钮

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()

结果如下:

Python+Tkinter制作专属图形化界面

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

点击按钮自定义功能

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

from tkinter import *
from tkinter import messagebox

def 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+Tkinter制作专属图形化界面

以上就是Python+Tkinter制作专属图形化界面的详细内容,更多关于Python Tkinter图形化界面的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python 布尔操作实现代码
Mar 23 Python
python设置检查点简单实现代码
Jul 01 Python
python实现的登录和操作开心网脚本分享
Jul 09 Python
Python抓取淘宝下拉框关键词的方法
Jul 08 Python
python PyTorch参数初始化和Finetune
Feb 11 Python
TensorFlow车牌识别完整版代码(含车牌数据集)
Aug 05 Python
使用python批量修改文件名的方法(视频合并时)
Mar 24 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
Dec 09 Python
520使用Python实现“我爱你”表白
May 20 Python
使用python实现时间序列白噪声检验方式
Jun 03 Python
如何在mac下配置python虚拟环境
Jul 06 Python
Python中相见恨晚的技巧
Apr 13 Python
Pyhton爬虫知识之正则表达式详解
python 离散点图画法的实现
Python学习之迭代器详解
Python实战之大鱼吃小鱼游戏的实现
OpenCV实现常见的四种图像几何变换
关于Python使用turtle库画任意图的问题
Apr 01 #Python
python套接字socket通信
You might like
PHP的变量总结 新手推荐
2011/04/18 PHP
PHP使用SOAP调用.net的WebService数据
2013/11/12 PHP
PHP积分兑换接口实例
2015/02/09 PHP
php计算两个文件相对路径的方法
2015/03/14 PHP
php格式化电话号码的方法
2015/04/24 PHP
PHP实现bitmap位图排序与求交集的方法
2016/07/28 PHP
PHP基于GD2函数库实现验证码功能示例
2019/01/27 PHP
一段实时更新的时间代码
2006/07/07 Javascript
javascript中拼接HTML字符串的最快、最好的方法
2014/06/07 Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
2014/08/15 Javascript
AngularJS语法详解(续)
2015/01/23 Javascript
js实现动画特效的文字链接鼠标悬停提示的方法
2015/03/02 Javascript
浅谈javascript中基本包装类型
2015/06/03 Javascript
jQuery的图片轮播插件PgwSlideshow使用详解
2016/08/11 Javascript
jQuery网页定位导航特效实现方法
2016/12/19 Javascript
javascript作用域链与执行环境详解
2017/03/25 Javascript
利用js查找数组中指定元素并返回该元素的所有索引示例
2017/03/29 Javascript
JS实现的简单四则运算计算器功能示例
2017/09/27 Javascript
jQuery实现手机号正则验证输入及自动填充空格功能
2018/01/02 jQuery
脚手架vue-cli工程webpack的作用和特点
2018/09/29 Javascript
layui实现根据table数据判断按钮显示情况的方法
2019/09/26 Javascript
15 分钟掌握vue-next响应式原理
2019/10/13 Javascript
mpvue实现左侧导航与右侧内容的联动
2019/10/21 Javascript
[49:31]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第二场 1月29日
2021/03/11 DOTA
python递归查询菜单并转换成json实例
2017/03/27 Python
Python实现带参数的用户验证功能装饰器示例
2018/12/14 Python
Python图像滤波处理操作示例【基于ImageFilter类】
2019/01/03 Python
Python 移动光标位置的方法
2019/01/20 Python
Mixbook加拿大:照片书,照片卡,剪贴簿,年历和日历
2017/02/21 全球购物
自动化专业毕业生自荐信
2013/11/01 职场文书
员工薪酬福利制度
2014/01/17 职场文书
计算机个人求职信范例
2014/01/24 职场文书
品质管理部岗位职责范文
2014/03/01 职场文书
户外拓展训练感想
2015/08/07 职场文书
大学自主招生自荐信(2016精选篇)
2016/01/28 职场文书
OpenCV-Python实现图像平滑处理操作
2021/06/08 Python