tkinter调取签名网而设计签名页面(十七)
# --*-- coding:utf-8 --*-- import tkinter as tk
import re
import requests
from tkinter import messagebox
from PIL import Image,ImageTk # 创建窗口
wuya = tk.Tk()
# 设置窗口title
wuya.title("舞涯签名")
# 设置窗口大小
wuya.geometry("600x330+300+200") # 下载签名
def download():
url = 'http://www.uustv.com/'
# 获得输入内容
name = ety.get()
# 去空格
name = name.strip()
if name == '':
messagebox.showinfo("提示","请输入用户名")
else:
# 设置post数据
data = {
'word':name,
'sizes':60,
'fonts':'jfcs.ttf',
'fontcolor':'#000000'
} # 请求网页
result = requests.post(url=url,data=data)
# 获取网页源码
result.encoding = 'utf-8'
html = result.text
# 正则表达式匹配需要的内容
reg = '<div class="tu">.*?<img src="(.*?)"/></div>'
img = re.findall(reg,html)
# 获取图片路径
imgurl = url + img[0]
# 获取图片内容
response = requests.get(url=imgurl).content # 将获取的图片保存到本地
f = open('{}.gif'.format(name),'wb')
f.write(response)
f.close() # 显示图片
bm = ImageTk.PhotoImage(file='{}.gif'.format(name))
lb2 = tk.Label(wuya,image=bm)
lb2.bm = bm
lb2.place(x=30,y=100) # 签名输入框标签
lb = tk.Label(wuya,text="输入您的名字:",font=("黑体",22),fg='red')
lb.place(x=50,y=20) # 输入框
ety = tk.Entry(wuya,font=("黑体",22))
ety.place(x=200,y=20) # 生成签名按钮
bt = tk.Button(text="生成签名",width=7,font=("黑体",18),command=download)
bt.place(x=200,y=60) wuya.mainloop()
结果如下:

此代码来源于优酷视频,笔者看了一遍视频学的。详情不做解释。有兴趣的可以去优酷看视频了解。
http://v.youku.com/v_show/id_XMzUyODI5NTY5Ng==.html?spm=a2h0k.8191407.0.0&from=s1.8-1-1.2&f=51380420
虽说是公开课内容,但是笔者没有获得原作者的授权就将代码贴出来,实有不妥,如读者遇到原作者还希望告知笔者copy内容,万谢!!
tkinter调取签名网而设计签名页面(十七)的更多相关文章
- tkinter调取签名网而设计签名页面
# --*-- coding:utf-8 --*-- import tkinter as tk import re import requests from tkinter import messag ...
- API服务接口签名代码与设计,如果你的接口不走SSL的话?
在看下面文章之前,我们先问几个问题 rest 服务为什么需要签名? 签名的几种方式? 我认为的比较方便的快捷的签名方式(如果有大神持不同意见,可以交流!)? 怎么实现验签过程 ? 开放式open ap ...
- 腾讯网移动端H5页面设计实战分享
分享 <关于我> 分享 [中文纪录片]互联网时代 http://pan.baidu.com/s/1qWkJfcS 分享 <HTML开发MacOSAp ...
- 如何在自己设计的页面中调用metamask-1
启发: https://github.com/MetaMask/metamask-extension/issues/714 https://github.com/MetaMask/metamask-e ...
- 对石家庄铁道大学官网UI设计的分析
在这一周周一,老师给我们讲了PM,通过对PM的学习,我知道了PM 对项目所有功能的把握, 特别是UI.最差的UI, 体现了团队的组织架构:其次, 体现了产品的内部结构:最好, 体现了用户的自然需求.在 ...
- 【Java EE 学习 70 下】【数据采集系统第二天】【Action中User注入】【设计调查页面】【Action中模型赋值问题】【编辑调查】
一.Action中User注入问题 Action中可能会经常用到已经登陆的User对象,如果每次都从Session中拿会显得非常繁琐.可以想一种方法,当Action想要获取User对象的时候直接使用, ...
- [ASP.NET MVC] 利用动态注入HTML的方式来设计复杂页面
原文:[ASP.NET MVC] 利用动态注入HTML的方式来设计复杂页面 随着最终用户对用户体验需求的不断提高,实际上我们很多情况下已经在按照桌面应用的标准来设计Web应用,甚至很多Web页面本身就 ...
- TMS WEB CORE直接从HTML&CSS设计的页面布局
TMS WEB CORE直接从HTML&CSS设计的页面布局 TMS WEB CORE支持DELPHI IDE中拖放控件,生成HTML UI.这种方式适合DELPHI和C++ BUILDER的 ...
- Altera三速以太网IP核使用(下篇)--- 百兆网接口设计与使用
MAC IP核的主要作用是:实现数据链路层协议,分为TX方向与RX方向,TX方向实现的是在原包文的前面加上7个55和1个D5,RX方向则相反.在使用这个 MAC IP核之前,首先确认下自己使用的网卡是 ...
随机推荐
- 内存管理buddy[原理]
TODO------------------------------------------------------------------------------------------------ ...
- CentOS 6.5静态IP的设置(NAT和桥接联网方式都适用)
不多说,直接上干货! 为了方便,用Xshell来.并将IP设置为静态的.因为,在CentOS里,若不对其IP进行静态设置的话,则每次开机,其IP都是动态变化的,这样会给后续工作带来麻烦.为此,我们需将 ...
- MongoDB-Oplog详解
MongoDB Oplog 详解 Oplog 概念 Oplog 是用于存储 MongoDB 数据库所有数据的操作记录的(实际只记录增删改和一些系统命令操作,查是不会记录的),有点类似于 mysql 的 ...
- JavaWeb学习 (二十一)————基于Servlet+JSP+JavaBean开发模式的用户登录注册
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
- Jmeter接口测试——跨线程组调用参数(token为例)
昨天学会了动态获取token,今天测试接口时希望能够实现跨线程调用token值. 实现原理: jmeter本身的“__setProperty”函数可以把某参数的值设置成jmeter本身的内置属性,而j ...
- Linux 下 rt3070 无线网卡找不到 firmware 问题
解决办法: 下载好固件 rt2800.bin 文件,复制到 /lib/firmware 中 如果完成以上步骤后,运行 ifconfig wlan0 up 仍然提示 phy0 -> rt2x00l ...
- asp.net mvc 模型验证组件——FluentValidation
asp.net mvc 模型验证组件——FluentValidation 示例 using FluentValidation; public class CustomerValidator: Abst ...
- APiCloud学习
端API调用 核心模块在 window.api 对象下,默认提供该模块,不需要单独引用. 扩展模块在相应的模块对象下(例如:文件系统模块在fs对象下),需要require引入(var fs = api ...
- 【Java并发编程】18、PriorityBlockingQueue源码分析
PriorityBlockingQueue是一个基于数组实现的线程安全的无界队列,原理和内部结构跟PriorityQueue基本一样,只是多了个线程安全.javadoc里面提到一句,1:理论上是无界的 ...
- C++中析构函数的作用
如果构造函数打开了一个文件,最后不需要使用时文件就要被关闭.析构函数允许类自动完成类似清理工作,不必调用其他成员函数. 析构函数也是特殊的类成员函数.简单来说,析构函数与构造函数的作用正好相反,它用来 ...