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中调用ggplot的三种方法
Apr 08 Python
Python批量按比例缩小图片脚本分享
May 21 Python
Python内置模块logging用法实例分析
Feb 12 Python
使用pip发布Python程序的方法步骤
Oct 11 Python
pandas求两个表格不相交的集合方法
Dec 08 Python
python中树与树的表示知识点总结
Sep 14 Python
Python loguru日志库之高效输出控制台日志和日志记录
Mar 07 Python
python对指定字符串逆序的6种方法(小结)
Apr 02 Python
Python3如何实现Win10桌面自动切换
Aug 11 Python
用python实现一个简单计算器(完整DEMO)
Oct 14 Python
Python基于opencv的简单图像轮廓形状识别(全网最简单最少代码)
Jan 28 Python
matplotlib更改窗口图标的方法示例
Feb 03 Python
Pyhton爬虫知识之正则表达式详解
python 离散点图画法的实现
Python学习之迭代器详解
Python实战之大鱼吃小鱼游戏的实现
OpenCV实现常见的四种图像几何变换
关于Python使用turtle库画任意图的问题
Apr 01 #Python
python套接字socket通信
You might like
可快速识别放射性物质-国外大神教你diy一个开放式辐射探测器
2020/03/12 无线电
PHP&MYSQL服务器配置说明
2006/10/09 PHP
php unset全局变量运用问题的深入解析
2013/06/17 PHP
PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
2014/11/18 PHP
PHP操作mysql数据库分表的方法
2016/06/09 PHP
如何让PHP编码更加好看利于阅读
2019/05/12 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
对google个性主页的拖拽效果的js的完整注释[转]
2007/04/10 Javascript
jquery miniui 教程 表格控件 合并单元格应用
2012/11/25 Javascript
js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
2012/12/27 Javascript
js和as的稳定传值问题解决
2013/07/14 Javascript
SuperSlide2实现图片滚动特效
2014/06/20 Javascript
JavaScript遍历table表格中的某行某列并打印其值
2014/07/08 Javascript
AngularJS入门教程之AngularJS 模板
2016/08/18 Javascript
Node.js使用NodeMailer发送邮件实例代码
2017/03/06 Javascript
详解angular路由高亮之RouterLinkActive
2018/04/28 Javascript
详解easyui基于 layui.laydate日期扩展组件
2018/07/18 Javascript
vue2.0 中使用transition实现动画效果使用心得
2018/08/13 Javascript
vue-cli 使用vue-bus来全局控制的实例讲解
2018/09/15 Javascript
JavaScript中七种流行的开源机器学习框架
2018/10/11 Javascript
js定义类的方法示例【ES5与ES6】
2019/07/30 Javascript
jquery实现简单拖拽效果
2020/07/20 jQuery
python更改已存在excel文件的方法
2018/05/03 Python
在Python中获取操作系统的进程信息
2019/08/27 Python
python随机生成库faker库api实例详解
2019/11/28 Python
Python使用Tkinter实现转盘抽奖器的步骤详解
2020/01/06 Python
python+adb+monkey实现Rom稳定性测试详解
2020/04/23 Python
Python基础教程(一)——Windows搭建开发Python开发环境
2020/07/20 Python
使paramiko库执行命令时在给定的时间强制退出功能的实现
2021/03/03 Python
世界上最好的帽子:Tilley
2016/11/27 全球购物
出纳员岗位职责
2014/03/13 职场文书
公司承诺书范文
2014/05/19 职场文书
学习党的群众路线对照检查材料
2014/09/29 职场文书
老人节标语大全
2014/10/08 职场文书
四风问题原因分析及整改措施
2014/10/24 职场文书
GO语言字符串处理函数之处理Strings包
2022/04/14 Golang