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将人民币转换大写的脚本代码
Feb 10 Python
Python中使用PIPE操作Linux管道
Feb 04 Python
python并发编程之多进程、多线程、异步和协程详解
Oct 28 Python
django实现前后台交互实例
Aug 07 Python
Django数据库表反向生成实例解析
Feb 06 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
Jun 18 Python
Python中栈、队列与优先级队列的实现方法
Jun 30 Python
django框架用户权限中的session缓存到redis中的方法
Aug 06 Python
python开发前景如何
Jun 11 Python
keras的siamese(孪生网络)实现案例
Jun 12 Python
通过实例简单了解python yield使用方法
Aug 06 Python
asyncio异步编程之Task对象详解
Mar 13 Python
Pyhton爬虫知识之正则表达式详解
python 离散点图画法的实现
Python学习之迭代器详解
Python实战之大鱼吃小鱼游戏的实现
OpenCV实现常见的四种图像几何变换
关于Python使用turtle库画任意图的问题
Apr 01 #Python
python套接字socket通信
You might like
PHP中cookies使用指南
2007/03/16 PHP
PHP实现扎金花游戏之大小比赛的方法
2015/03/10 PHP
php随机显示指定文件夹下图片的方法
2015/07/13 PHP
JavaScript窗口功能指南之在窗口中书写内容
2006/07/21 Javascript
js 发个判断字符串是否为符合标准的函数
2009/04/27 Javascript
Jquery 设置标题的自动翻转
2009/10/03 Javascript
javascript 面向对象全新理练之数据的封装
2009/12/03 Javascript
js实现单行文本向上滚动效果实例代码
2013/11/28 Javascript
Jquery attr()方法 属性赋值和属性获取详解
2016/04/15 Javascript
jQuery实现打开页面渐现效果示例
2016/07/27 Javascript
JS检测数组类型的方法小结
2017/03/14 Javascript
[js高手之路]原型式继承与寄生式继承详解
2017/08/28 Javascript
Vue-cli-webpack搭建斗鱼直播步骤详解
2017/11/17 Javascript
详解Angular5 路由传参的3种方法
2018/04/28 Javascript
vuejs数据超出单行显示更多,点击展开剩余数据实例
2019/05/05 Javascript
详细教你微信公众号正文页SVG交互开发技巧
2019/07/25 Javascript
小程序中this.setData的使用和注意事项
2019/08/28 Javascript
Webpack设置环境变量的一些误区详解
2019/12/19 Javascript
[01:19]2014DOTA2国际邀请赛 采访TITAN战队ohaiyo 能赢DK很幸运
2014/07/12 DOTA
浅谈Python接口对json串的处理方法
2018/12/19 Python
python常用库之NumPy和sklearn入门
2019/07/11 Python
linux下python中文乱码解决方案详解
2019/08/28 Python
Python 实现将数组/矩阵转换成Image类
2020/01/09 Python
python标准库OS模块函数列表与实例全解
2020/03/10 Python
keras中的loss、optimizer、metrics用法
2020/06/15 Python
美国零售商店:Blue&Cream
2017/04/07 全球购物
音乐专业应届生教师求职信
2013/11/04 职场文书
超市采购员岗位职责
2014/02/01 职场文书
经典团队口号大全
2014/06/21 职场文书
幼儿园中班区域活动总结
2014/07/09 职场文书
出国签证在职证明
2014/09/20 职场文书
不遵守课堂纪律的检讨书
2014/09/24 职场文书
夫妻房产协议书的格式
2014/10/11 职场文书
2015年三年级班主任工作总结
2015/05/21 职场文书
酒会开场白大全
2015/06/01 职场文书
优秀的商业计划书,让融资一步到位
2019/05/07 职场文书