Python GUI | 利用Tkinter制作签名设计软件!
点击上方“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制作签名设计软件!相关推荐
- Python|利用tkinter制作桌面翻译工具,结构不是很复杂不过有点糙
最近突然想到是不是可以拿来做个桌面小工具,于是花了一个下午加一晚上,折腾了一下. 运行平台:Windows Python版本:Python3.6 IDE:Sublime Text 其他:Chrome浏 ...
- 个性签名设计软件_佩服!我用Python设计了一个签名软件
临近年末,大家都忙着签发礼品,写的一手好的签名,会让大家更有成就感,今天,小安就带领大家来设计一个基于tkinter+爬虫的签名设计软件,方便大家设计签名. 要设计这款软件,就需要了解tkinter与 ...
- python:程序猿的方式在元宵佳节之际,带你设计【东方明珠】动画浪漫烟花秀(python编程利用Tkinter+PIL库)
python:程序猿的方式在元宵佳节之际,带你设计[东方明珠]动画浪漫烟花秀(python编程利用Tkinter+PIL库) 目录 设计动画展示 设计思路 核心代码 设计动画展示 设计思路 核心代码 ...
- 【Python】利用tkinter与图灵机器人制作智能聊天系统
1 前言 一次偶然的机会,我了解到图灵机器人网站,里面有现成的智能机器人聊天API.正好当时在学tkinter,计划利用tkinter制作一个类似QQ聊天框,与机器人聊天~ 具体效果如下(ps:由于在 ...
- Python GUI之tkinter窗口视窗教程大集合
Python GUI之tkinter窗口视窗教程大集合 一.前言 二.Tkinter是什么 三.Tkinter 控件详细介绍 1. Tkinter 模块元素简要说明 2. 常用窗口部件及简要说明: 四 ...
- Python GUI库TKinter子线程与主线程控件传递消息策略
TKinter GUI库没有像MFC那样的强制安全策略,在MFC中子线程无法直接控制主线程中的GUI控件,比如修改文本框或者按钮上的内容.因为如果只有2个线程,即一个主线程和一个子线程的情况下子线程直 ...
- Python GUI编程(Tkinter)笔记
Python GUI编程Tkinter笔记 1 显示任意格式图片 2 固定框架Frame大小 3 选择文件夹或文件 4 展示菜单栏 5 展示选择的图片 1 显示任意格式图片 Tkinter只支持显示G ...
- Python基础笔记_Day14_Python图形化界面、Python GUI、tkinter、Python英汉词典
Day14_Python图形化界面.Python GUI.tkinter.Python英汉词典 14.01_Python语言基础(Python实现英汉字典)(掌握) 14.02_Python语言基础( ...
- 在网上购物竟然也能和Python扯上关系!电脑上用自己写的程序购物?别说,QT实现还真挺简单(Python如何利用QT制作电脑的手机版拼多多)
拼多多现在也是越来越火了,但是不知道大家有没有发现,拼多多似乎一直不能通过网页进行访问.淘宝,京东都有微信客户端,那么怎么拼多多就没有呢?带着这个疑问,我特地去手机爬取了一下拼多多的客户端.(其实也不 ...
- python tkinter获取屏幕大小_Python GUI编程|使用Tkinter制作快递查询软件
GUI(图形用户界面)想必大家都不陌生,简单来说就是将代码变成可以交互式操作的界面.在Python中就提供了多个图形开发界面的库,比如Tkinter.wxPython.Jython等,本文将使用Tki ...
最新文章
- 人体姿态和形状估计的视频推理:CVPR2020论文解析
- Windows 10下安装Anaconda(Anaconda3-5.1.0)
- pyinstaller3.5 和 python 3.8 不兼容
- Happy Number 十进制转特殊三进制
- git 基本命令记录
- C语言中时间的基本用法
- 树莓派安装MySQL数据库与卸载
- mysql 5.6 利用gtid 同步数据遇到的问题记录
- 多表关系介绍 mysql
- 七月二十一日!! NVIDIA DLI 深度学习入门课程——计算机视觉
- mysql数据库快捷添加外键_mysql 数据库添加外键的几种方式
- java输入框1-100_Java开发笔记(一百三十九)JavaFX的输入框
- mysql表死锁查询
- VirtualBox 网络链接配置
- 修改msde登录方式,设置sa密码为空
- MTK工具,最新MT6739刷机工具,MT6739资料下载
- 【Paper】DeepConvLSTM:Deep Convolutional and LSTM RNN for Multimodal Wearable Activity Recognition
- 王道数据结构3.3.6——2、铁道进行车厢调度,将一辆列车的硬座车厢都调到软坐车厢后面
- 计算机硬件的主要性能指标包括,计算机硬件系统有哪些主要的性能指标
- putty的使用(总结)
热门文章
- 用pano2vr创建全景图
- 电脑分屏工具 v1.22
- Ant Design Pro (五) 修改Footer
- matlab里调节触发角度,电机与拖动基础及MATLAB仿真陈亚爱第4章直流电机.ppt
- 几种凹凸贴图(Bump Mapping)的学习记录
- 华为一直响应服务器异常,服务器不断异常重启
- solidworks做动态静力学分析Motion(牛头刨床为例)机械原理课设(停止中断)
- android支付后声音,支付宝到账声音生成器
- 15天助你掌握问卷统计与Spss实战
- 使用Visio画各种可视化的流程图之用例图和类图