Python+Tkinter打造签名设计工具

目录
  • 1.概述
  • 2.网页分析
    • 1)网页缺陷
    • 2)页面分析
    • 3)数据的获取
  • 3.完整代码
  • 4.总结

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签名设计的资料请关注我们其它相关文章!

(0)

相关推荐

  • python3个性签名设计实现代码

    本文实例为大家分享了python个性签名设计的具体代码,供大家参考,具体内容如下 参考博客:Python GUI Tkinter简单实现个性签名设计 参考博客:python3爬虫之设计签名小程序 Code from tkinter import * from tkinter import messagebox import requests import re from PIL import Image,ImageTk #模拟浏览器发送请求 def download(): startUrl =

  • Python库学习Tkinter制作GUI个性签名设计软件

    目录 Tkinter简介 获取个性签名图 设计软件GUI界面 下拉列表框 设计界面 人生苦短,快学Python! 上一周发了一篇文章<Python Tkinter图形工具使用方法及实例解析>,很多小伙伴都希望能多出点教程,今天就来了. Tkinter简介 由于Tkinter是Python自带的标准库,我们想要使用它的时候,只需直接导入即可. from tkinter import * Tkinter支持的组件有: 对于简单的图形界面 Tkinter 还是能应付自如,不过相对于PyQt5做出的界

  • 利用Python轻松生成艺术签名

    目录 一.写在前面 二.先看看效果 三.代码展示 1.需要用到的模块 2.窗口名字/图标/大小/布局 3.必要组件的定义 4.输入框 5.保存/生成按钮 6.下拉框 7.组件布局 8.事件绑定 9.生成签名 10.更新界面上的图片 11.签名保存 12.run 四.全部代码 一.写在前面 很多兄弟觉得自己字写的不好什么的,没事,咱们直接用python来生成,对着多练练就能写出一手好看的艺术签名了,小姐姐看了直呼好看~ 二.先看看效果 可以选择字体.颜色,这里我们用默认的看看的效果. 啊这,一笔学

  • Python+Tkinter制作在线个性签名工具

    目录 一.首先确定GUI界面: 二.爬取我们需要的内容 三.完整代码 思路:先选择在线签名网站,找到接口模拟请求,然后将生成的签名图片显示在 Tkinter 生成的 GUI 窗口上,最后保存生成的签名图片 选择网址为:http://www.uustv.com/ 首先了解爬虫的基本步骤: 发起请求 :即发送一个Request,可能包含额外的headers,data等信息 获取响应内容 :得到网页的HTML文件内容 解析内容:可以使用正则表达式提取出想要的内容 保存数据:将数据存为文本,或mp3,m

  • Python GUI Tkinter简单实现个性签名设计

    一.Tkinter的介绍和简单教程 Tkinter 是 Python 的标准 GUI 库.Python 使用 Tkinter 可以快速的创建 GUI 应用程序. 由于 Tkinter 是内置到 python 的安装包中.只要安装好 Python 之后就能 import Tkinter 库.而且 IDLE 也是用 Tkinter 编写而成.对于简单的图形界面 Tkinter 还是能应付自如. 注意:Python3.x 版本使用的库名为 tkinter,即首写字母 T 为小写. import tki

  • Python+Tkinter打造签名设计工具

    目录 1.概述 2.网页分析 1)网页缺陷 2)页面分析 3)数据的获取 3.完整代码 4.总结 1.概述 前面我们已经详细的介绍了,怎么使用Tkinter创建属于自己的窗口界面了.整体布局呢我们已经搭建起来,唯一没有实现的一个步骤就是,用户每输入一个名字,就会将个性签名一并显示在这个窗口界面中,今天我就带着大家一起完成这个需求. 今天的文章可以看成是爬虫+Tkinter窗口的结合.昨天我们完成了Tkinter窗口搭建过程,今天需要做的就是利用爬虫得到我们最终想要的个性化签名.网上在线签名网站特

  • Python+tkinter实现网站下载工具

    目录 前言 开发环境 本次项目案例步骤 先展示下完成品的效果 界面 导入模块 先创建个窗口 功能按键 主要功能代码编写 功能一 功能二 功能三 前言 最近很多同学想问我,怎么把几个代码的功能集合到一起? 很简单,写一个界面就行了,想要哪个代码运行,鼠标轻轻一点就行 开发环境 python 3.8: 解释器 pycharm: 代码编辑器 本次项目案例步骤 1.先确定想要的功能,今天这个项目的主要功能为三个 视频 评论 弹幕 2.创建一个简单的用户交互界面,简洁明了 先展示下完成品的效果 界面 导入

  • python tkinter图形界面代码统计工具

    本文为大家分享了python tkinter图形界面代码统计工具,供大家参考,具体内容如下 #encoding=utf-8 import os,sys,time from collections import defaultdict from tkinter import * import tkinter.messagebox from tkinter import ttk from tkinter import scrolledtext root= Tk() root.title("有效代码统

  • python tkinter图形界面代码统计工具(更新)

    本文为大家分享了python tkinter图形界面代码统计工具的更新版,供大家参考,具体内容如下 代码统计工具 修改了导出excel功能,把原来的主文件进行了拆分 code_count_windows.py #encoding=utf-8 import os,sys,time from collections import defaultdict from tkinter import * import tkinter.messagebox from tkinter import ttk fr

  • Python基于Tkinter编写crc校验工具

    本篇文章,完全是用来记录代码用的,目的是使用Python,基于Tkinter编写crc校验工具. # -*- coding: utf-8 -*- import Tkinter import tkFileDialog WIDTH = 16 TOPBIT = (1 << (WIDTH - 1)) crcTable = {} class FindLocation(object): def __init__(self): #创建主窗口,用于容纳其它组件 self.root = Tkinter.Tk()

  • 使用python tkinter开发一个爬取B站直播弹幕工具的实现代码

    项目地址 https://github.com/jonssonyan... 开发工具 python 3.7.9 pycharm 2019.3.5 代码 import threading import time import tkinter.simpledialog from tkinter import END, simpledialog, messagebox import requests class Danmu(): def __init__(self, room_id): # 弹幕url

  • python基于tkinter制作下班倒计时工具

    你有过摸鱼时间吗 在互联网圈子里,常常说996上班制,但是也不乏965的,更甚有007的,而007则就有点ICU的感觉了,所以,大家都会忙里偷闲,偶尔摸摸鱼,摸鱼的方式多种多样的,你有过上班摸鱼吗?你的摸鱼时间都干了些什么呢?如果你早早的完成了当天的任务,坐等下班的感觉是不是很爽呢?我想说这时间还是很难熬的,还不如找点事情做来得快呢,那做点什么呢?写个下班倒计时吧,就这么愉快的决定了-- 实现思路 倒计时的时间刷新,肯定得需要图形界面,也就是需要GUI编程,这里我用的是tkinter实现本地窗口

随机推荐