利用用python构建 个性化签名
from tkinter import * from tkinter import messagebox,ttk from PIL import ImageTk import requests import re # 获取签名图片 def download(): startUrl = "http://www.uustv.com/" # 获取用户输入 name = entry.get() # 获取样式 style = numberChosen.current() # 获取索引 # 去空格 name = name.strip() if name == "": messagebox.showinfo('提示',"请输入名字") else: font = { '0':'jfcs.ttf', '1':'qmt.ttf', '2':'bzcs.ttf', '3':'lfc.ttf', '4':'haku.ttf', '5':'zql.ttf', '6':'yqk.ttf' } # 模拟网页发送数据 data={ 'word':name, 'sizes':'60', 'fonts': font[str(style)], 'fontclor':'#000000' } result = requests.post(startUrl,data=data) result.encoding="utf-8" html = result.text # 正则表达式 reg = '<div class="tu"><img src="(.*?)"/></div>' imgPath =re.findall(reg,html) imgUrl = startUrl + imgPath[0] response = requests.get(imgUrl).content # 保存图片 with open("{}.gif".format(name),'wb') as f: f.write(response) # 显示图片 bm = ImageTk.PhotoImage(file='{}.gif'.format(name)) lable2 = Label(root,image=bm) lable2.bm = bm # columnspan 组件所跨越的列数 lable2.grid(row=2,columnspan=4) # 创建窗口 root = Tk() # 获取屏幕的宽与高 sw = root.winfo_screenwidth() sh = root.winfo_screenheight() # 标题 root.title("签名设计") # 窗口大小 小写的x root.geometry("600x300") # 窗口出现位置 px # root.geometry("+500+300") # 目前是写死的 root.geometry("+%d+%d"%((sw-600)/2,(sh-300)/2)) # 窗口图标 root.iconbitmap('f:\\favicon.ico') # 标签控件 lable = Label(root,text="签名:",font=('华文行楷',20),fg='red') # place pack 位置 grid 网格式布局 # 定位控件 lable.grid(row=0,column=0) # 输入框 entry = Entry(root,width=20,font=('微软雅黑',15)) entry.grid(row=0,column=1) entry.focus() #当程序运行时,光标默认出现的位置 #下拉标签 lable3 = Label(root,text='样式:',font=('华文行楷',20),fg='red') lable3.grid(row=0,column=2) # 下拉列表 number = StringVar() numberChosen = ttk.Combobox(root,width=10,font=('华文行楷',20),textvariable=number,state='readonly') numberChosen['values']=('个性签','连笔签','潇洒签','草体签','合文签','商务签','可爱签') numberChosen.grid(row=0,column=3) numberChosen.current(0) # 点击按钮 command 按钮触发函数 button = Button(root,text='设计签名',font=('微软雅黑',10),command = download) # button['width'] = 10 # button['height'] = 1 # 对齐方式 E,W N,S button.grid(row=1,column=3,sticky=E) # 显示窗口 root.mainloop()