利用tk创建一个可视化窗口:
from tkinter import *
# 创建窗口
root = Tk()
# 循环显示
root.mainloop()
mainloop为主循环,循环显示窗口;
之后的主程序代码都需要写在mainloop之前,
run ===>
调整窗口大小,添加标题和相应文字:
from tkinter import *
# 创建窗口
root = Tk()
# 标题
root.title('签名设计')
# 窗口大小
root.geometry('600x300+650+390')
# 标签1
label = Label(root, text='名字', font='华文行楷, 20', fg='blue')
# 标签位置
label.grid(row=0, column=0)
# 循环显示
root.mainloop()
窗口大小为600x300,中间为小写x,两组加号分别为窗口左上角的横纵坐标(打开窗口时窗口出现的位置),
可以获取屏幕分辨率按比例显示窗口位置:
wid = root.winfo_screenwidth()
hei = root.winfo_screenheight()
root.geometry('600x300+{}+{}'.format(wid//3, hei//3))
grid定位标签在窗口中的位置,row为第几行,column为第几列
run===>
添加输入窗口和按钮:
# 输入窗口
entry = Entry(root, font='华文行楷, 20')
# 窗口位置
entry.grid(row=0, column=1)
# 按钮
button = Button(root, text='设计签名', font='华文行楷, 20', fg='red')
# 按钮位置
button.grid(row=1, column=0)
Entry为输入窗口,其中font为输入字体和大小,
Button为按钮及文本属性
run ===>
当我们点击按钮时,需要获取输入的名字在设计签名的网站上设计出的签名,并在窗口中显示出来,
--编写获取签名并上传的函数:
先添加点击按钮后的动作:
button = Button(root, text='设计签名', font='华文行楷, 20', fg='red', command=download)
设计函数download:
def download():
# 获取输入名字
name = entry.get()
# 移除名字头尾的空格
name = name.strip()
# 如果名字为空格,则要求重新输入
if name == '':
messagebox.showinfo('请输入名字~')
else:
# 输入正确时:从网站获取签名
data = {
'word': name,
'sizes': 60,
'fonts': 'jfcs.ttf',
'fontcolor': '#000000'
}
url = 'http://www.uustv.com/'
# 获取html
result = requests.post(url, data)
result.encoding = 'utf8'
html = result.text
# 正则获取签名图片地址
reg = '<div class="tu">.*?<img src="(.*?)"/></div>'
img_path = re.findall(reg, html)
imgurl = url + img_path[0]
response = requests.get(imgurl).content
# 下载图片
with open('{}.gif'.format(name), 'wb') as f:
f.write(response)
# 显示图片
bm = ImageTk.PhotoImage(file='{}.gif'.format(name))
label2 = Label(root, image=bm)
label2.bm = bm
label2.grid(row=2, columnspan=2)
messagebox.showinfo()弹出提示框,
根据网页,提取签名图片,
使用pyinstaller打包成.exe文件
pyinstaller -F -w *.py