Python-GUI签名
2023-02-18 16:36:23 时间
1.导入需要的模块库
from tkinter import *
from tkinter import messagebox
from PIL import Image, ImageTk
import re
import requests
Tkinter:Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口
PIL:是Python Image Library的缩写,图像处理的模块。主要的类包括Image,ImageFont,ImageDraw,ImageFilter
re :re模块主要功能是通过正则表达式是用来匹配处理字符串的
2.获取页面源代码及其信息 发送POST请求
def download():
startUrl = 'http://www.uustv.com/'
# 获取用户输入的姓名 entry 是输入标签
name = entry.get()
# 去空格
name = name.strip()
# 如果没有输入名字 则提示
if name == '':
# 提示信息
messagebox.showinfo('提示', '请输入名字!')
else:
# 模拟网页发送数据
# 字典
data = {
'word': name,
'sizes': '60',
'fonts': 'bzcs.ttf',
'fontcolor': '#000000'
}
result = requests.post(startUrl, data=data)
# 设置编码 防止中文乱码
result.encoding = 'utf-8'
# 获取网页源代码
html = result.text
# 正则表达式
req = '<div class="tu"><img src="(.*?)"/></div>'
# 图片路径 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数 tmp/152283183699750.gif
imgPath = re.findall(req,html)
# 图片完整路径
imgUrl = startUrl + imgPath[0]
# 获取图片内容
response = requests.get(imgUrl).content
# 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
f = open('{}.gif'.format(name), 'wb')
f.write(response)
# 显示图片
bm = ImageTk.PhotoImage(file='{}.gif'.format(name))
label2 = Label(root, image=bm)
label2.bm = bm
# columnspan 组件所跨越的列数
label2.grid(row=2, columnspan=2)
3.GUI窗口设计
# 创建窗口
root = Tk()
# 标题
root.title('签名设计')
# 获取屏幕 宽、高
ws = root.winfo_screenwidth()
hs = root.winfo_screenheight()
w = 600
h = 300
# 计算 x, y 位置
x = str(int((ws/2) - (w/2)))
y = str(int((hs/2) - (h/2)))
# 窗口大小 截图说明窗口大小
root.geometry('550x300')
# 窗口位置 宽 高
root.geometry('+500+300')
# 标签控件 可以设置字体 大小 颜色
label = Label(root, text='签名', font=('华文行楷', 20),fg = 'red')
# row=0, column=0 grid 网格布局 pack place 但是不要混合使用
# 定位
label.grid()
# 输入框 entry 显示单行文本 Text
entry = Entry(root, font=('微软雅黑', 25))
# row 行 column 列 pack place
entry.grid(row=0, column=1)
# 点击按钮
button = Button(root, text='设计签名', font=('微软雅黑', 20), command=download)
# 你可以使用sticky选项去指定对齐方式 E、W
button.grid(row=1, column=1)
# 消息循环
root.mainloop()
4.效果展示
相关文章
- 使用python-jenkins管理Jenkins
- python爬百度翻译demo
- python将获取到的数据保存到文本
- python:使用xpath获取想要的数据
- 接口测试第2讲:Python测试框架——unittest
- 接口测试第3讲:Python测试框架——pytest
- [python]pythonic的字典常用操作
- pip install mysql-connector-python失败
- [python]自问自答:python -m参数?
- [python]在场景中理解装饰器
- [python]python元类
- [python]pip常用命令(转载)
- [python基础知识]python内置函数map/reduce/filter
- [python]逆水行舟不进则退(1)
- [Python]新手写爬虫全过程(已完成)
- [Python]爬虫v0.1
- [Python]同是新手的我,分享一些经验
- [python]闭包到底是什么鬼?
- (转)python生态环境简介
- 再学python类(终结篇)