Python+Tkinter打造签名设计工具

 更新时间:2022年04月01日 11:23:04   作者:黄伟呢  
这篇文章主要为大家分享如何利用Python Tkinter库制作带图形界面的一个签名设计工具,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下

1.概述

前面我们已经详细的介绍了,怎么使用Tkinter创建属于自己的窗口界面了。整体布局呢我们已经搭建起来,唯一没有实现的一个步骤就是,用户每输入一个名字,就会将个性签名一并显示在这个窗口界面中,今天我就带着大家一起完成这个需求。

今天的文章可以看成是爬虫+Tkinter窗口的结合。昨天我们完成了Tkinter窗口搭建过程,今天需要做的就是利用爬虫得到我们最终想要的个性化签名。网上在线签名网站特别多,我也是任意选取了百度首页排在第一位的那个在线签名网站

2.网页分析

1)网页缺陷

这个文章有一个不好的地方,就是你输入一些空格,网站就给你显示一个空白(如图所示)。

我们在写代码的时候,可不能这样,要避免这个问题的发生。我的想法是这样的,如果你输入为空,我就弹窗提醒你。

图片

2)页面分析

从图中可以发现,我们在输入框每输入一个名字,进行查询后。相当于给服务器发送了一次post请求,post请求的表单共有四个,从图中可以很清晰地看出来。总的来说,这个网站还是挺简单的,会一些简单的爬虫都可以完成,我这里就不详细介绍了。

3)数据的获取

怎么查看网页源代码,相信大家不用我说了吧。我们想要获取的数据,一般的网址是会直接显示在源代码中,比如说今天这个网站,但是对于大多数网站就不一定了。通过定位我们发现,最终想要的个性签名图片,位于class="tu"div标签中,我已经用红色方框标注出来了,由于我们只是获取这一条信息,直接使用正则表达式来获取好了。

3.完整代码

通过上述说明,我们已经将准备工作做好了,现在可以书写代码了。这里有几个知识点昨天还没有讲述到,就简单提一下。

entry.get()获取用户输入。我们在输入框输入什么,这里可以捕捉到;

messagebox.showinfo()能够完成弹窗提示,和VBA有点像;

from tkinter import *
from tkinter import messagebox
import requests
import re
from PIL import Image,ImageTk

def func():
    # 获取窗口输入的名字
    name = entry.get()
    print(name)
    # 去掉空格
    name = name.strip()
    # 判断:如果用户输入为空,显示
    if name == "":
        messagebox.showinfo("提示",message="请输入完整的名字")
    else:
        # 请求网站,获取图片
        data = {
            'word': name,
            'sizes': '60',
            'fonts': 'yqk.ttf',
            'fontcolor': ''#000000'
        }
        url = "http://www.uustv.com/"
        result = requests.post(url,data)
        result.encoding = "utf-8"
        html = result.text
        pattern = r'<img src="(.*?)"/></div>'
        img_path = re.findall(pattern,html)[0]
        img_url = url + img_path 
        # 写入到本地
        with open(f'{name}的签名照.gif', "wb") as f:
            f.write(requests.get(img_url).content)
        # 将图片展示在窗口上
        bm = ImageTk.PhotoImage(file=f'{name}的签名照.gif')
        label2 = Label(root,image=bm)
        label2.bm = bm
        label2.grid(row=3,columnspan=2)

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

# 窗口大小
root.geometry("540x305+374+182")

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

# 添加标签控件
label = Label(root,text="签名:",font=("宋体",25),fg="red")
# 定位
label.grid()

# 添加输入框
entry = Entry(root,font=("宋体",25),fg="black")
entry.grid(row=0,column=1)

# 添加点击按钮
button = Button(root,text="签名设计",font=("宋体",25),fg="blue",command=func)
button.grid(row=1,column=1)

# 显示窗口
root.mainloop()

效果如下:

4.总结

为了更好的在不懂行的面前装逼,我最终也将程序使用pyinstaller打包了。这样你就可以发给那些文科妹子装装逼,不是很好吗?也会一并提供给大家。

本文有两个遗留问题,可以交给大家解决一下。其一,原网站可以进行签名设计的字体切换,我这个在代码中没有体现出来,你可以自行研究一下。其二,使用pyinstaller打包后的程序,虽然可以运行,但是好慢呀,大家自行下去思考。

以上就是Python+Tkinter打造签名设计工具的详细内容,更多关于Python Tkinter签名设计的资料请关注脚本之家其它相关文章!

相关文章

  • 将django项目部署到centos的踩坑实战

    将django项目部署到centos的踩坑实战

    Django部署到Cenos需要安装大量的依赖包, 有很多坑需要踩,这篇文章主要给大家介绍了关于将django项目部署到centos踩坑的相关资料,需要的朋友可以参考下
    2021-07-07
  • Python编程快速上手——Excel到CSV的转换程序案例分析

    Python编程快速上手——Excel到CSV的转换程序案例分析

    这篇文章主要介绍了Python Excel到CSV的转换程序,结合具体案例形式分析了Python操作Excel到CSV转换的操作技巧与相关注意事项,需要的朋友可以参考下
    2020-02-02
  • Qt5.14 与 OpenCV4.5 教程之图片增强效果

    Qt5.14 与 OpenCV4.5 教程之图片增强效果

    这篇文章主要介绍了Qt5.14 与 OpenCV4.5 教程之图片增强效果的实现,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-11-11
  • python实现翻译word表格小程序

    python实现翻译word表格小程序

    这篇文章主要为大家详细介绍了python翻译word表格小程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • Python实现计算两个指定日期相差几年几月几日

    Python实现计算两个指定日期相差几年几月几日

    这篇文章主要为大家详细介绍了如何使用Python实现计算两个日期之间相差多少年,多少月,多少天,文中的的示例代码讲解详细,需要的可以参考下
    2024-02-02
  • 使用Anaconda3建立虚拟独立的python2.7环境方法

    使用Anaconda3建立虚拟独立的python2.7环境方法

    今天小编就为大家分享一篇使用Anaconda3建立虚拟独立的python2.7环境方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Python不同格式打印九九乘法表示例

    Python不同格式打印九九乘法表示例

    大家好,本篇文章主要讲的是Python不同格式打印九九乘法表示例,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下哦,方便下次浏览
    2021-12-12
  • 如何利用python实现kmeans聚类

    如何利用python实现kmeans聚类

    K-Means是聚类算法的一种,以距离来判断数据点间的相似度并对数据进行聚类,下面这篇文章主要给大家介绍了关于如何利用python实现kmeans聚类的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • 利用ImageAI库只需几行python代码实现目标检测

    利用ImageAI库只需几行python代码实现目标检测

    这篇文章主要介绍了利用ImageAI库只需几行python代码超简实现目标检测功能,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • Python 文件数据读写的具体实现

    Python 文件数据读写的具体实现

    这篇文章主要介绍了Python 文件数据读写的具体实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01

最新评论