点击上方“Python爬虫与数据挖掘”,进行关注

回复“书籍”即可获赠Python从入门到进阶共10本电子书

漾漾泛菱荇,澄澄映葭苇。

人生苦短,快学Python!

Tkinter 是 Python 中的标准 GUI 库,使用 Tkinter 可以快速地创建 GUI 应用程序。今天我们打算再用一个小案例,带大家加深对 Tkinter 的理解。

Tkinter简介

由于Tkinter是Python自带的标准库,我们想要使用它的时候,只需直接导入即可。

from tkinter import *

Tkinter支持的组件有:

对于简单的图形界面 Tkinter 还是能应付自如,不过相对于PyQt5做出的界面不够美观,相对于Pysimplegui则显得代码太笨重。这两个库埋个坑,后面开一篇单独介绍。

今天的整体思路就是:先选择一个在线签名网站,找到接口模拟请求,然后将生成的签名图片下载到本地,最后显示在 Tkinter 生成的 GUI 窗口上。

获取个性签名图

在制作个性签名软件前,第一件事是先找到一个合适的网站,获取他们的接口。

为啥说要找合适的网站呢?

某搜索引擎 一搜"签名设计",那真的是花里胡哨啊,我的审美被一顿冲击。“乱花丛中”找了一圈,才挑到一个稍微正常一点的网站。

网站地址:http://www.yishuzi.com/b/13.htm

F12开发者模式,选择 Network。手动将配色调整为#000000黑色,背景调整为#FFFFFF白色,随便输入一个名字,点击生成。

非常轻松,就可以找到该网站生成签名发送的请求。如下所示:

废话不多说,直接上Python!

通过requests.post()请求该网址,并导入参数。其中最重要的参数有两个:id对应的是带生成名字,id1对应的是艺术字体。

import requests
from urllib.request import urlretrieve
url = 'http://www.yishuzi.com/b/re13.php'
d = requests.post(url, data={'id': '测试签名', 'zhenbi': '20191123','id1': '904', 'id2': '#FFFFFF', 'id4': '#000000', 'id6': '#000000'})
d.content.decode("utf-8")

可以看到,post()返回的是带有链接的字符串。

轻松就可以从返回的字符串中,提取到生成的增长的个性签名图片。然后用urlretrieve()下载图片到本地,最后将其封装为自定义函数。

def create_sign(word):url = 'http://www.yishuzi.com/b/re13.php'd = requests.post(url, data={'id': word, 'zhenbi': '20191123','id1': '904', 'id2': '#FFFFFF', 'id4': '#000000', 'id6': '#000000'})myurl = d.content.decode("utf-8").split('"')[1]urlretrieve(myurl, word + '.png')

后续在设计软件GUI界面时,直接调用这个函数,就可以直接生成个性签名了。

设计软件GUI界面

下载签名图片函数create_sign()已经创建好,工作实际就完成了一半。

剩下就是我们设计软件界面了,不妨先简单画个草图。

这里主要要用到:Label(标签控件)、Entry(输入控件)、 Button(按钮控件)、Frame(框架控件)以及选择字体时,需要用到的Combobox(下拉列表框)。

前面的控件都介绍过,具体看这一篇8000字,Tkinter详细使用教程!下拉列表框

下拉列表框

Python 窗体(Tkinter)下拉列表框Combobox。它是在Tkinter模块下的ttk模块的一个部件,产生的效果是一个下拉列表框,它是GUI当中的一个装饰(widget)。当用户点击下拉列表获取值的时候是从列表当中选取的,那么就会产生一个名为<<ComboboxSelected>>的虚拟事件。

其常见的几个参数有:

语法 作用
cv = tk.stringVar() 绑定变量
com = ttk.Combobox(root, textvariable=cv) 创建下拉框
com.pack() 放置下拉框
com["value"] = ('文本',文本') 设置下拉数据
com.current(索引) 设置默认值
demo = com.get() 变量接受值
com.bind("<>", 函数名) 下拉数据点击调用函数

简单用一个小例子帮助大家理解。

import tkinter
from tkinter import ttkroot = tkinter.Tk()
root.geometry("400x200") xVariable = tkinter.StringVar()   #创建变量com = ttk.Combobox(root, textvariable=xVariable)  #创建下拉菜单
com.pack()     #将下拉菜单绑定到窗体
com["value"] = ("选项1", "选项2", "选项3", "选项4")
com.current(0)   #设定下拉菜单的默认值root.mainloop()

运行后,效果如下所示。

这样我们再通过com.get(),就可以获取下拉框中,最后选择的值了。

设计界面

剩下的界面设计就简单多了,只需要将Label(标签控件)、Entry(输入控件)、 Button(按钮控件)、Frame(框架控件)、Combobox(下拉列表框)排列一下。

回想一下前面画的草图,开整!

规定窗口大小为600x400,再设置窗口的基本属性。

所有组件都采用place几何方法,将组件的大小及布局,进行合理的规划。同时,Button组件也都与其对应的功能函数create_sign(word),进行了链接。

部分代码如下所示,完整代码见文末。

root = Tk()
root.title("签名设计 by:快学Python")
root.geometry("600x400")
bg_image = PhotoImage(file = 'background.png')
bg_label = Label(root, image = bg_image)
bg_label.place(relwidth = 1, relheight = 1)
frame = Frame(root, bg = '#edcc79', bd = 5)
frame.place(relx = 0.5, rely = 0.1, relwidth = 0.75, relheight = 0.1,anchor = 'n')
font_label = Label(frame, text = '输入签名:', font = ('微软雅黑', 16), fg ='black')
font_label.place(relwidth = 0.25, relheight = 1)
name_entry = Entry(frame, font = ('微软雅黑', 16))

最终成品,展示一下。

输入名字,点击生成,一气呵成!不同风格,一键转换!这样,我们就又完成了一个Tkinter实战小案例。

人生苦短,快学Python,我们明天见!

小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。

本文仅仅做代码学习交流分享,大家切勿爬虫成疾!

------------------- End -------------------

往期精彩文章推荐:

  • 手把手教你用Python网络爬虫实现上海证券交易所定期报告pdf文件下载(附代码)

  • 手把手教你使用Python网络爬虫获取B站视频选集内容(附源码)

  • Python项目实战篇——常用验证码标注&识别(CNN神经网络模型训练/测试/部署)

  • 手把手教你使用openpyxl库从Excel文件中提取指定的数据并生成新的文件(附源码)

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

想加入Python学习群请在后台回复【入群

万水千山总是情,点个【在看】行不行

/今日留言主题/

随便说一两句吧~~

Python GUI | 利用Tkinter制作签名设计软件!相关推荐

  1. Python|利用tkinter制作桌面翻译工具,结构不是很复杂不过有点糙

    最近突然想到是不是可以拿来做个桌面小工具,于是花了一个下午加一晚上,折腾了一下. 运行平台:Windows Python版本:Python3.6 IDE:Sublime Text 其他:Chrome浏 ...

  2. 个性签名设计软件_佩服!我用Python设计了一个签名软件

    临近年末,大家都忙着签发礼品,写的一手好的签名,会让大家更有成就感,今天,小安就带领大家来设计一个基于tkinter+爬虫的签名设计软件,方便大家设计签名. 要设计这款软件,就需要了解tkinter与 ...

  3. python:程序猿的方式在元宵佳节之际,带你设计【东方明珠】动画浪漫烟花秀(python编程利用Tkinter+PIL库)

    python:程序猿的方式在元宵佳节之际,带你设计[东方明珠]动画浪漫烟花秀(python编程利用Tkinter+PIL库) 目录 设计动画展示 设计思路 核心代码 设计动画展示 设计思路 核心代码 ...

  4. 【Python】利用tkinter与图灵机器人制作智能聊天系统

    1 前言 一次偶然的机会,我了解到图灵机器人网站,里面有现成的智能机器人聊天API.正好当时在学tkinter,计划利用tkinter制作一个类似QQ聊天框,与机器人聊天~ 具体效果如下(ps:由于在 ...

  5. Python GUI之tkinter窗口视窗教程大集合

    Python GUI之tkinter窗口视窗教程大集合 一.前言 二.Tkinter是什么 三.Tkinter 控件详细介绍 1. Tkinter 模块元素简要说明 2. 常用窗口部件及简要说明: 四 ...

  6. Python GUI库TKinter子线程与主线程控件传递消息策略

    TKinter GUI库没有像MFC那样的强制安全策略,在MFC中子线程无法直接控制主线程中的GUI控件,比如修改文本框或者按钮上的内容.因为如果只有2个线程,即一个主线程和一个子线程的情况下子线程直 ...

  7. Python GUI编程(Tkinter)笔记

    Python GUI编程Tkinter笔记 1 显示任意格式图片 2 固定框架Frame大小 3 选择文件夹或文件 4 展示菜单栏 5 展示选择的图片 1 显示任意格式图片 Tkinter只支持显示G ...

  8. Python基础笔记_Day14_Python图形化界面、Python GUI、tkinter、Python英汉词典

    Day14_Python图形化界面.Python GUI.tkinter.Python英汉词典 14.01_Python语言基础(Python实现英汉字典)(掌握) 14.02_Python语言基础( ...

  9. 在网上购物竟然也能和Python扯上关系!电脑上用自己写的程序购物?别说,QT实现还真挺简单(Python如何利用QT制作电脑的手机版拼多多)

    拼多多现在也是越来越火了,但是不知道大家有没有发现,拼多多似乎一直不能通过网页进行访问.淘宝,京东都有微信客户端,那么怎么拼多多就没有呢?带着这个疑问,我特地去手机爬取了一下拼多多的客户端.(其实也不 ...

  10. python tkinter获取屏幕大小_Python GUI编程|使用Tkinter制作快递查询软件

    GUI(图形用户界面)想必大家都不陌生,简单来说就是将代码变成可以交互式操作的界面.在Python中就提供了多个图形开发界面的库,比如Tkinter.wxPython.Jython等,本文将使用Tki ...

最新文章

  1. 人体姿态和形状估计的视频推理:CVPR2020论文解析
  2. Windows 10下安装Anaconda(Anaconda3-5.1.0)
  3. pyinstaller3.5 和 python 3.8 不兼容
  4. Happy Number 十进制转特殊三进制
  5. git 基本命令记录
  6. C语言中时间的基本用法
  7. 树莓派安装MySQL数据库与卸载
  8. mysql 5.6 利用gtid 同步数据遇到的问题记录
  9. 多表关系介绍 mysql
  10. 七月二十一日!! NVIDIA DLI 深度学习入门课程——计算机视觉
  11. mysql数据库快捷添加外键_mysql 数据库添加外键的几种方式
  12. java输入框1-100_Java开发笔记(一百三十九)JavaFX的输入框
  13. mysql表死锁查询
  14. VirtualBox 网络链接配置
  15. 修改msde登录方式,设置sa密码为空
  16. MTK工具,最新MT6739刷机工具,MT6739资料下载
  17. 【Paper】DeepConvLSTM:Deep Convolutional and LSTM RNN for Multimodal Wearable Activity Recognition
  18. 王道数据结构3.3.6——2、铁道进行车厢调度,将一辆列车的硬座车厢都调到软坐车厢后面
  19. 计算机硬件的主要性能指标包括,计算机硬件系统有哪些主要的性能指标
  20. putty的使用(总结)

热门文章

  1. 用pano2vr创建全景图
  2. 电脑分屏工具 v1.22
  3. Ant Design Pro (五) 修改Footer
  4. matlab里调节触发角度,电机与拖动基础及MATLAB仿真陈亚爱第4章直流电机.ppt
  5. 几种凹凸贴图(Bump Mapping)的学习记录
  6. 华为一直响应服务器异常,服务器不断异常重启
  7. solidworks做动态静力学分析Motion(牛头刨床为例)机械原理课设(停止中断)
  8. android支付后声音,支付宝到账声音生成器
  9. 15天助你掌握问卷统计与Spss实战
  10. 使用Visio画各种可视化的流程图之用例图和类图