用 Python 实现浪漫表白程序

作者|李秋键
出品|CSDN(ID:CSDNnews)
相信很多小伙伴都曾在抖音、快手以及B站等平台刷到过表白程序 , 不论是各种的程序制作爱心或者是程序制作心动符号等 , 在各个平台很受欢迎 。 但是其中大多数形式都已经被公众所知晓 , 且缺乏流动性 。 故今天我们将自行设计一个表白浪漫程序 , 具有动态开关宠物、照片墙、弹窗提示以及turtle画图等功能 。 其中具体效果图如下:
用 Python 实现浪漫表白程序
文章图片
本浪漫程序的技术路线分为以下几个部分:通过Pyqt5模块构建透明窗口 , 并设置聊天窗等功能 , 设置右键功能 , 使其功能启动“浪漫程序“;开始宠物系统再通过多线程启动其他程序 , 包含弹窗程序 , 海龟画图程序等;生成爱心照片墙:通过2.py程序生成爱心照片墙 , 并缩放至1000×806;海龟画图:运行1.py程序实现海龟画图 , 绘制玫瑰花和爱心;
其中的程序操作流程:
首先运行2.py生成照片墙 , 并缩放至1000×806;然后运行biu.py启动宠物系统 , 通过邮件宠物运行整个程序 , 最终程序会慢慢完成 , 形成动态程序效果 。
具体功能的形成分为以下几个部分介绍 , 最终代码也会免费放置文末的百度网盘中 , 供大家学习参考 。
照片墙生成程序
其中程序运行基本步骤为:首先需要将需要生成的照片放置photo文件夹中 , 然后直接运行2.py程序即可 。
其中的照片墙素材如下:
用 Python 实现浪漫表白程序
文章图片
代码思路如下:
首先自定义二维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
这里用游戏中的图片作为生成素材 , 最终生成的照片墙如下:
用 Python 实现浪漫表白程序
文章图片
启动宠物程序
启动宠物程序基本流程为:首先建立表白语料库作为聊天窗口展示;然后自行选择一些具有表白意义的gif动态图作为宠物动作;最后通过Pyqt5构建透明窗口程序 , 通过多线程实现动作交替以及右键鼠标功能等 。
1、其中构建的语料库文件如下 , 存储到“data.txt“中 , 并通过换行实现语句分割 , 其中“data.txt”直接放置和程序同一目录即可 , 可参照文末提供的原始程序放置位置:
用 Python 实现浪漫表白程序
文章图片
2、构建的宠物动作动态图素材 , 将找到的素材放置biu文件夹下 , 如下图所示:
用 Python 实现浪漫表白程序
文章图片
3、程序实现 。 程序实现主要分为初始化透明窗口、设置托盘选项、右键菜单功能、设置聊天对话框功能以及动作时间交替等部分 , 整体程序的实现有pyqt5构成 。
其中具体知识点分为以下几个部分:
用 Python 实现浪漫表白程序】1、Pyqt5基本流程
1.1类的定义和初始化
为了使程序更加规范 , 我们定义整体的类变量 , 方便调用 。
其中分为下面几步: