1. from tkinter import *
  2. from tkinter import messagebox,ttk
  3. from PIL import ImageTk
  4. import requests
  5. import re
  6.  
  7. # 获取签名图片
  8. def download():
  9. startUrl = "http://www.uustv.com/"
  10. # 获取用户输入
  11. name = entry.get()
  12. # 获取样式
  13. style = numberChosen.current() # 获取索引
  14. # 去空格
  15. name = name.strip()
  16. if name == "":
  17. messagebox.showinfo('提示',"请输入名字")
  18. else:
  19. font = {
  20. '':'jfcs.ttf',
  21. '':'qmt.ttf',
  22. '':'bzcs.ttf',
  23. '':'lfc.ttf',
  24. '':'haku.ttf',
  25. '':'zql.ttf',
  26. '':'yqk.ttf'
  27. }
  28. # 模拟网页发送数据
  29. data={
  30. 'word':name,
  31. 'sizes':'',
  32. 'fonts': font[str(style)],
  33. 'fontclor':'#000000'
  34. }
  35. result = requests.post(startUrl,data=data)
  36. result.encoding="utf-8"
  37. html = result.text
  38. # 正则表达式
  39. reg = '<div class="tu"><img src="(.*?)"/></div>'
  40. imgPath =re.findall(reg,html)
  41. imgUrl = startUrl + imgPath[0]
  42. response = requests.get(imgUrl).content
  43. # 保存图片
  44. with open("{}.gif".format(name),'wb') as f:
  45. f.write(response)
  46. # 显示图片
  47. bm = ImageTk.PhotoImage(file='{}.gif'.format(name))
  48. lable2 = Label(root,image=bm)
  49. lable2.bm = bm
  50. # columnspan 组件所跨越的列数
  51. lable2.grid(row=2,columnspan=4)
  52. # 创建窗口
  53. root = Tk()
  54. # 获取屏幕的宽与高
  55. sw = root.winfo_screenwidth()
  56. sh = root.winfo_screenheight()
  57. # 标题
  58. root.title("签名设计")
  59. # 窗口大小 小写的x
  60. root.geometry("600x300")
  61. # 窗口出现位置 px
  62. # root.geometry("+500+300") # 目前是写死的
  63. root.geometry("+%d+%d"%((sw-600)/2,(sh-300)/2))
  64. # 窗口图标
  65. root.iconbitmap('f:\\favicon.ico')
  66. # 标签控件
  67. lable = Label(root,text="签名:",font=('华文行楷',20),fg='red')
  68. # place pack 位置 grid 网格式布局
  69. # 定位控件
  70. lable.grid(row=0,column=0)
  71. # 输入框
  72. entry = Entry(root,width=20,font=('微软雅黑',15))
  73. entry.grid(row=0,column=1)
  74. entry.focus() #当程序运行时,光标默认出现的位置
  75. #下拉标签
  76. lable3 = Label(root,text='样式:',font=('华文行楷',20),fg='red')
  77. lable3.grid(row=0,column=2)
  78.  
  79. # 下拉列表
  80. number = StringVar()
  81. numberChosen = ttk.Combobox(root,width=10,font=('华文行楷',20),textvariable=number,state='readonly')
  82. numberChosen['values']=('个性签','连笔签','潇洒签','草体签','合文签','商务签','可爱签')
  83. numberChosen.grid(row=0,column=3)
  84. numberChosen.current(0)
  85. # 点击按钮 command 按钮触发函数
  86. button = Button(root,text='设计签名',font=('微软雅黑',10),command = download)
  87. # button['width'] = 10
  88. # button['height'] = 1
  89. # 对齐方式 E,W N,S
  90. button.grid(row=1,column=3,sticky=E)
  91.  
  92. # 显示窗口
  93. root.mainloop()

利用用python构建 个性化签名的更多相关文章

  1. 用Python构建你自己的推荐系统

    用Python构建你自己的推荐系统 现如今,网站用推荐系统为你提供个性化的体验,告诉你买啥,吃啥甚至你应该和谁交朋友.尽管每个人口味不同,但大体都适用这个套路.人们倾向于喜欢那些与自己喜欢的其他东西相 ...

  2. 使用Boost.Python构建混合系统(译)

    目录 Building Hybrid Systems with Boost.Python 摘要(Abstract) 介绍(Introduction) 设计目标 (Boost.Python Design ...

  3. python构建bp神经网络_曲线拟合(一个隐藏层)__2.代码实现

    IDE:jupyter 抽象程度可能不是那么高,以后再优化. 理论和代码实现的差距还是挺大的 数据集请查看 python构建bp神经网络(一个隐藏层)__1.数据可视化 部分代码预览 git上传.ip ...

  4. 【311】Python 构建 ArcMap 标注表达式

    参考:构建标注表达式(官方帮助) 参考:计算字段示例(官方帮助) 说明:以上两者的方法略有不同,一个是通过字段表达式显示标注,一个通过字段计算新的字段,使用的工具方法也不同,前者通过 Layer.la ...

  5. 用 Python 构建 web 应用

    用 Python 构建 web 应用 如果说仅仅要用 Python 构建 web 应用,可以将 socket 连接.HTTP 原始请求和响应格式等涉及网络基础的东西交给现成的库来实现,只需要专注于 w ...

  6. Python-黑客-004 用Python构建一个SSH僵尸网络-02 手动与SSH交互

    用Python构建一个SSH僵尸网络-02 手动与SSH交互 - 登录SSH服务器端的 root 用户 我的电脑(攻击者)的系统:Ubuntu14.04 : 用户名: aobosir@ubuntu:~ ...

  7. Python 黑客 004 用Python构建一个SSH僵尸网络 01 简介

    用Python构建一个SSH僵尸网络 01 简介 一. 构建一个SSH僵尸网络的流程图: Created with Raphaël 2.1.0手动操作,实现通过SSH连接目标服务器(手动)用 Pexp ...

  8. OpenAI的GPT-2:用Python构建世界上最先进的文本生成器的简单指南

    介绍 "The world's best economies are directly linked to a culture of encouragement and positive f ...

  9. 使用OpenCV和Python构建自己的车辆检测模型

    概述 你对智慧城市的想法感到兴奋吗?如果是的话,你会喜欢这个关于建立你自己的车辆检测系统的教程的 在深入实现部分之前,我们将首先了解如何检测视频中的移动目标 我们将使用OpenCV和Python构建自 ...

随机推荐

  1. UI线程和工作者线程

    本文转载于:http://blog.csdn.net/libaineu2004/article/details/40398405 1.线程分为UI线程和工作者线程,UI线程有窗口,窗口自建了消息队列, ...

  2. ORA-14452:试图创建,更改或删除正在使用的临时表中的索引

    因为表kol_xx_fin050_temp 为临时表,而且有其他session正在使用. select vs.* from v$session vs , v$lock vl , dba_objects ...

  3. java.lang.Exception: Socket bind failed: [730048]

    严重: Error initializing endpoint java.lang.Exception: Socket bind failed: [730048] ?????????×???(Э?é/ ...

  4. 一篇来自网络的关于“enqueue”events的简短参考(转)

    仅供自己和各位同学参考: Enqueue Type Description enq: AD - allocate AU Synchronizes accesses to a specific OSM ...

  5. Sql server函数的学习2(游标函数、日期函数、字符串操纵函数)

    一.游标函数与变量 游标可以处理多行数据,在过程循环中一次访问一行.和基于集合的高效操作相比,这个功能对系统资源的消耗更大. 可以用一个函数和两个全局变量来管理游标操作 1.CURSOR_STATUS ...

  6. sgu114. Telecasting station 难度:1

    114. Telecasting station time limit per test: 0.25 sec. memory limit per test: 4096 KB Every city in ...

  7. 使用简单的python语句编写爬虫 定时拿取信息并存入txt

    # -*- coding: utf-8 -*- #解决编码问题import urllibimport urllib2import reimport osimport time page = 1url ...

  8. MySQL5.7 主从复制配置

    一.主从复制原理 MySQL 主从复制是一个异步的复制过程,主库发送更新事件到从库,从库读取更新记录,并执行更新记录,使得从库的内容与主库保持一致.每一个主从复制的连接,都有三个线程.拥有多个从库的主 ...

  9. 对Repository模式误用的反思和纠正

    一直以来想自己做一套开发框架,在其基础上进行快速开发,自从接触微软的MVC框架和Entityframework以来,阅读了大量园子里的相关的技术文章,也进行了不少摸索和尝试,中间经历了多次大刀阔斧的重 ...

  10. 图片预加载 js css预加载

    图片预加载, 效果非常明显, 特别是有多个图, 方法很简单 , 体验提升了不少 <div class="hidden">        <script type= ...