zoukankan      html  css  js  c++  java
  • 利用用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()
  • 相关阅读:
    dataset的transformations-变形记
    创建dataset的方法
    Codeforces Round #479 (Div. 3) D. Divide by three, multiply by two
    Codeforces Round #479 (Div. 3) C. Less or Equal
    Codeforces Round #479 (Div. 3) B. Two-gram
    Codeforces Round #479 (Div. 3) A. Wrong Subtraction
    GlitchBot -HZNU寒假集训
    Floyd 算法求多源最短路径
    dijkstra算法:寻找到全图各点的最短路径
    Wooden Sticks -HZNU寒假集训
  • 原文地址:https://www.cnblogs.com/IPYQ/p/9105001.html
Copyright © 2011-2022 走看看