用 Python 实现浪漫表白程序
作者|李秋键
出品|CSDN(ID:CSDNnews)
相信很多小伙伴都曾在抖音、快手以及B站等平台刷到过表白程序 , 不论是各种的程序制作爱心或者是程序制作心动符号等 , 在各个平台很受欢迎 。 但是其中大多数形式都已经被公众所知晓 , 且缺乏流动性 。 故今天我们将自行设计一个表白浪漫程序 , 具有动态开关宠物、照片墙、弹窗提示以及turtle画图等功能 。 其中具体效果图如下:
文章图片
本浪漫程序的技术路线分为以下几个部分:通过Pyqt5模块构建透明窗口 , 并设置聊天窗等功能 , 设置右键功能 , 使其功能启动“浪漫程序“;开始宠物系统再通过多线程启动其他程序 , 包含弹窗程序 , 海龟画图程序等;生成爱心照片墙:通过2.py程序生成爱心照片墙 , 并缩放至1000×806;海龟画图:运行1.py程序实现海龟画图 , 绘制玫瑰花和爱心;
其中的程序操作流程:
首先运行2.py生成照片墙 , 并缩放至1000×806;然后运行biu.py启动宠物系统 , 通过邮件宠物运行整个程序 , 最终程序会慢慢完成 , 形成动态程序效果 。
具体功能的形成分为以下几个部分介绍 , 最终代码也会免费放置文末的百度网盘中 , 供大家学习参考 。
照片墙生成程序
其中程序运行基本步骤为:首先需要将需要生成的照片放置photo文件夹中 , 然后直接运行2.py程序即可 。
其中的照片墙素材如下:
文章图片
代码思路如下:
首先自定义二维list , 其中1表示填充空白块 , 0表示填充读取到的照片;然后读取照片路径 , 并通过random实现随机化 , 避免相近图片排在一起;接着通过Image库读入图片 , 对读取到得图像集遍历绘制至其中 。 其中具体部分代码如下所示:random.shuffle(imgs)img_h=img_w=250rows=len(map)columns=len(map[0])figure=Image.new("RGB",(img_w*columns,img_h*rows),"white")count=0foriinrange(len(map)):forjinrange(len(map[i])):ifmap[i][j]==1:continueelse:try:image=Image.open(os.path.join(img_dir,imgs[count]))except:continueimage=image.resize((img_w,img_h))figure.paste(image,(img_w*j,img_h*i))count+=1
这里用游戏中的图片作为生成素材 , 最终生成的照片墙如下:
文章图片
启动宠物程序
启动宠物程序基本流程为:首先建立表白语料库作为聊天窗口展示;然后自行选择一些具有表白意义的gif动态图作为宠物动作;最后通过Pyqt5构建透明窗口程序 , 通过多线程实现动作交替以及右键鼠标功能等 。
1、其中构建的语料库文件如下 , 存储到“data.txt“中 , 并通过换行实现语句分割 , 其中“data.txt”直接放置和程序同一目录即可 , 可参照文末提供的原始程序放置位置:
文章图片
2、构建的宠物动作动态图素材 , 将找到的素材放置biu文件夹下 , 如下图所示:
文章图片
3、程序实现 。 程序实现主要分为初始化透明窗口、设置托盘选项、右键菜单功能、设置聊天对话框功能以及动作时间交替等部分 , 整体程序的实现有pyqt5构成 。
其中具体知识点分为以下几个部分:
【用 Python 实现浪漫表白程序】1、Pyqt5基本流程
1.1类的定义和初始化
为了使程序更加规范 , 我们定义整体的类变量 , 方便调用 。
其中分为下面几步:
- Minitab 免费试用安装说明
- 比尔·盖茨|坐拥千亿的前世界首富,却不肯用苹果手机,只用韩国的三星手机
- 21岁女大学生深陷网赌,欠下网贷50万,如今用“特殊方式”偿还!
- 电池|一加11用库存屏幕惹争议,为什么很多人在意低频PWM调光?
- React全栈式开发 | Spring Boot应用开发
- 本文转自:中国科学报化学反应研究不再像“抽盲盒”科学家实现对氢分子的立体动力学精准调控研...|化学反应研究不再像“抽盲盒”
- 90后做京喜无货源,2个月做到单店8000,只用了“信息差”赚差价
- 本文转自:人民网人民网北京1月18日电 (记者孙红丽)据国家药监局官网消息|保障供应 国家药监局批准10个医用氧产品上市
- 本文转自:中国绿色时报人工智能技术与生态学大数据分析方法应用于鸟类多样性智慧监测|人工智能如何进行“鸟口普查”?
- 51信用卡举大刀割韭菜,2020 DEMO CHINA创投峰会开幕!