大家好,我是明哥。

关注得早的读者,应该还记得去年的今天,也就是情人节,明哥给大家整了一个 表白神器,这个神器是用 Python 写的一个小脚本,它可以将你女神的照片转换成由字符组成的另一张照片,大概的效果如下。

这是转换前的

这是转换后的(注意放大看

整个脚本的代码虽然只有 20 行左右,但是大家都知道 Python 脚本的运行是需要 Python 环境的,如果这个脚本中有使用第三方库的话,还需要额外安装一堆 Python 库。这也就意味着,对于一个毫无 Python 使用经验的同学来说,想要把脚本跑起来,还是比较困难的。

刚好今年的情人节,我还没有想到好的 idea,不如把去年的这个工具,使用 tkinter 封装成一个 exe 可执行文件,让所有人都可以使用起来~

先给大家看下这个 exe 程序的成品界面

我把这个 exe 上传到网盘上了:https://wws.lanzous.com/igrjGlnxw9i

接下来,我会复述一下我是如何在完全没有 GUI 编程基础的情况下,在 2 个小时里把这个程序写出来的。

0. 准备工作

在开始真正写代码之前,需要大概去预研一下,要写出这样一个 GUI 界面,需要准备哪些东西?

  1. 绘制原型:想要把软件做成啥样子?找找看有没有工具可以画这种软件原型图的。
  2. 学习GUI编程:了解 Python 的GUI编程框架有哪些,选一个最易上手的进行学习
  3. 打包成exe:了解并学习如何把 Python 脚本打包成 exe 文件

1. 绘制模型

有写书经验的人就会知道,选好题后,并不是直接就开始写文章了。一般在写之前,要先把书的大纲给列出来。

写 GUI 软件界面也是如此,在真正开发界面之前,必然要先根据功能画出软件的模型图。

在这个原型图上,可以直观看出,软件要实现哪些功能,怎么实现?用下拉选择呢还是手动输入?

软件的原型图绘制,我使用的是之前一直在用的 http://drao.io 这个在线工具。

从原型图上可以看出来,我这个软件要实现的一些基本功能

  1. 开始制作:把源图片转换成字符组成的目标图片
  2. 重新制作:若初次制作不满意,可以点此重新制作,这样不用关闭再打开软件
  3. 放大预览:转换完成后,会保存到指定目录,点这个按钮就可以直接进行预览
  4. 下载源码:可能会有同学想学习这块代码,所以加了这个入口。

2. GUI编程

在今天之前,我都没有学习过 GUI 编程框架,经过简单的了解和对比之后,选择了最轻量的内置 GUI 框架 - tkinter

是的,这玩意是内置的。

但是如果你在自己的电脑上 import tkinter 是有可能会报没有找到 tkinter 这个库的。

这是怎么回事呢?

原来,在你安装 Python 解释器的时候,就已经有这个选项,让你自行选择。

那如果你之前,忘了勾选上这个选项,要想重新安装,我有简单搜索了下,好像是比较麻烦的。

不过,好在我想到了一个非常方便快捷的方法,就是在你已经安装了 Python 解释器的情况下,再去双击 Python解释器安装文件,就会弹出这样一个界面,点击 Modify,就会再次进入上面让你选择 tcl/tk 的界面,勾选之后 ,一路 Next 就会重新在你电脑上安装上 tkinter。

tkinter 安装完成后,就可以根据原型图有针对性的去学习各个控件,经过简单的整理,我需要学习

有了这个学习路径,靠着 Google 观察了几个 Demo 后,直接就可以上手代码了。

3. 打包成exe

打包工具,大家都知道使用 pyinstaller,对于单文件的脚本来说,这个工具还是比较好驾驭的。

使用下面这一条命令,就会生成一个 dist 目录,打开一看会有一个 love-tool.exe 的文件。

$ pyinstaller -F -w --hidden-import=tkinter -i ming.ico -y love_tool.py

其中几个参数的意思是:

由于我的 Python 程序中,会引用两个本地的图片,因此生成 exe 后并不能立即执行,得先把我的两张图片先放入到 exe的同级目录。

这个时候就再双击 love-tool.exe 就正常啦

4. 异常的处理

当用户还没有选择源图片的时候,是理论上是无法转换的,因此这种情况下点 开始制作,就要给了提示

同样的,如果用户还没转换完成,也是不能进行 放大预览 的。

5. 写在最后

这个软件并没有对代码进行讲解,主要是对整个开发流程进行复述,有对代码感兴趣的同学,可以点这个链接(https://wws.lanzous.com/igrjGlnxw9i)下载 exe 后,点击 下载源码 就可以了。

最后,希望这个工具能给你和女神之间增添一点小乐趣~

2021 年情人节最新的表白神器(Python 制作,源码已开放)相关推荐

  1. 2022最新轻量级影视搜索播放器源码+已修复版

    正文: 2022最新轻量级影视搜索播放器源码+已修复版,因为之前API失效了,需要重新写规则,所以本次我花了点时间修复了下源码,有兴趣自行去研究. 更新日志: 2020/7/14 前端修正了一些显示, ...

  2. 2022最新微信表白墙小程序源码+美观好看

    正文: 2022全新微信表白墙小程序源码,项目使用的LeanCloud作为后端云,其它的就没什么好介绍的了. 程序: wwejgr.lanzouh.com/iD5530hcxf1e 图片:

  3. python表白神器_python教程之抖音同款表白神器——Python让你的七夕更完美!

    又到了一年一度的七夕!大家都准备送什么给自己心仪的对象呢?今天给大家带来python教程之抖音同款表白神器--Python让你的七夕更完美! 先上效果: python表白小程序 代码: from tk ...

  4. php表白树洞怎么写,最新微信树洞炫彩版表白墙源码源码分享,七夕情人节互动表白留言墙PHP源码,兼容SAE...

    8月份最新微信树洞炫彩版表白墙源码源码分享,七夕情人节互动表白留言墙PHP源码,完美兼容SAE! 程序特点: 1.php代码,完美兼容Sae,PHP空间 2.漂亮的扁平化界面,当前最流行. 3.发布选 ...

  5. python抖音表白程序代码_python教程之抖音同款表白神器——Python让你的七夕更完美!-Go语言中文社区...

    又到了一年一度的七夕!大家都准备送什么给自己心仪的对象呢?今天给大家带来python教程之抖音同款表白神器--Python让你的七夕更完美! 先上效果: python表白小程序 代码: from tk ...

  6. 最新还不错的宝宝起名神器小程序源码+UI非常美观

    正文: 最新还不错的宝宝起名神器小程序源码+UI非常美观. 名字生成有双套算法,如下图介绍: 支持输入姓氏之后支持自动起名,觉得不好的话可以手动切换,支持起两个字或者三个字的名字,另外也给小程序添加了 ...

  7. 最新校园社区论坛表白墙小程序源码+修复版带教程

    正文: 完整标题: 云开发 新UI修复BUG校园社区论坛表白墙小程序源码 带安装教程 源码属于云开发的,其实这个小程序就看大家怎么使用了,用来做表白墙也可以,做校园社区等等都是可以的. 这是从以前旧版 ...

  8. 2021最新PHP域名防封系统源码4.0+后台管理功能+个人免签支付接口网站源码

    这是一款最新的域名防封系统源码,带有后台管理系统,带有充值功能,对接个人免签支付(码支付) 功能还是不错的,感兴趣的拿去研究!带有配置教程! 站长测试环境:PHP5.4+MYSQL5.6 1.导入数据 ...

  9. 程序员如何用“心“表白(结尾附源码)

    写在前面:博主是一只经过实战开发历练后投身培训事业的"小山猪",昵称取自动画片<狮子王>中的"彭彭",总是以乐观.积极的心态对待周边的事物.本人的技 ...

最新文章

  1. 【译】Everything You Need to Know About Decentralized AI
  2. Vue.js2.0开发环境搭建(一)
  3. 知乎搜索框背后的Query理解和语义召回技术
  4. Git 版本对比 idea图形化版本
  5. SpringBoot—Entity父子类表@Inheritance和@MappedSuperclass
  6. linux下测试权限,Linux下进程权限分析
  7. Web.xml配置详解之context-param (加载spring的xml,然后初始化bean看的)
  8. 我的springboot+vue前后端分离权限脚手架
  9. 进销存软件哪个简单好用?
  10. 刘强东的大格局:京东要抢食亿万级货运出行市场!
  11. LeetCode Image Smoother
  12. 小孩用的台灯什么样的品牌好?2023儿童台灯灯具品牌排行榜
  13. 【网络】吐血整理-Java网络合集
  14. python打开本地浏览器_使用webdriver打开本地浏览器--python版
  15. c语言around用法,around 的用法
  16. python爬取豆瓣代码_python爬取豆瓣
  17. repo file=sys.stderr 错误完美解决
  18. Web3.0初探:一个基于区块链技术、用户主导、去中心化的网络生态
  19. OpenCV:如何去除票据上的印章
  20. 模拟美萍加密狗--Rockey2虚拟狗(三)

热门文章

  1. HQChart使用教程30-K线图如何对接第3方数据4-流通股本数据
  2. ?php exit('dedecms');?,包罗万象的织梦CMS的图片处理类库
  3. js怎么添加html空格,javascript-在JSX中添加空格的最佳做法
  4. Linux远程桌面连接,Xmanager 5实现远程调用CentOS7图形化界面
  5. python的脚本扩展名是什么_Python的脚本文件扩展名为()。
  6. Python 文件夹批量重命名
  7. 产品防伪码查询系统_学历学籍查询系统_证书查询系统_录取成绩查询系统_工资查询系统_信息查询系统
  8. 如何分析资产负债表、损益表、现金流量表、财务报告
  9. 《51单片机C语言应用开发技术大全 (第二版) 刘坤》pdf 附下载链接
  10. @WebFilter在SpringBoot无效的原因分析和解决