查看原文
其他

愚人节失恋,我用Python制作整蛊软件发送给女友,结果...

IT服务圈儿 2022-09-11

The following article is from 菜鸟学Python Author 菜鸟哥


作者丨菜鸟哥

来源 l 本文经经授权转自 菜鸟学Python(ID:cainiao_xueyuan)


不知不觉,一年一度的愚人节又到来了,愚人节也被称作为幽默节,是西方国家流行起来的一种民间的节日,意在通过朋友之间简单善意的小玩笑,来增添生活中的小乐趣。


小编也趁着这个节日制作了一个整蛊的小软件,本想发给女朋友娱乐一下,结果却惹她生气了,差点闹掰。具体是什么软件呢,大家一起来看看吧。


(耐心看完50秒,亮点在28秒)


视频中可以看到,当启动软件之后,程序会显示出文字窗口,而且会一直不断的循环出现并配有背景音乐。无论大家如何点击叉号,都没有办法完全的关闭窗口。


01.程序讲解

视频展示之后,接下来我们来看一下程序是如何实现的吧,通过上面的视频,我们可以将程序分为三个步骤来讲解。

  • 界面内容展示

  • 如何循环显示界面

  • 背景音乐循环

我们针对以上的三个步骤来分别进行程序的讲解。


02.界面内容展示

对于界面的展示,采用的是简单的tkinter界面进行制作,其程序如下图所示。

程序中,界面通过Label控件来进行文字内容的展示,为了增加界面形式的多样性,可以通过随机选择的方式来设置背景颜色和显示文字的字体。对于label控件绑定的键盘监听事件,这里是一个暗门,我们在程序的最后来讲解。程序运行后的界面如下图所示。

在电脑桌面中,每当关掉一个界面后,新的界面会通过随机的方式显示,位置不确定。


03.如何循环显示界面

对于页面的循环展示,是通过不断的开辟新的线程进行实现的,程序如下图所示:

上述的程序中,程序通过for循环的方式来开辟了多个线程,每个线程中都会去显示一个新的窗口界面,开启每个线程后,就会按照顺序来显示每个页面。

需要注意的是,当全部显示完所有的文字之后,也就是所有的线程都执行了一遍,此时就重新创建一组新的线程再去循环执行。


04.背景音乐循环

对于背景音乐的循环播放,这里利用pygame即可进行实现,程序如下图所示:

上述程序中,通过mixer.music.play(-1)来实现对于音乐的不断循环播放,而在整个的while循环中,当判断self.threads列表中的线程数量为0或者是self.threads中的列表数量达到所有文字数量之后,就会重新开启新的一组线程,来达到循环显示界面的目的。



05.程序暗门

可能有的小伙伴也在想,一直关不掉界面也不行,必须得留个暗门方面停止程序,这个小编早就为大家考虑到了,上面我们提到了程序会监控键盘的输入,所以我们可以利用这个点来实现程序的停止。需要知道暗门,找小助手。

以上,就是小编给大家带来的愚人节整蛊小程序,大家可以根据的喜好,来下载源码,设置自己的整蛊文字。并通过pyinstaller来打包程序,发送给自己想要整蛊的对象。

由于添加pygame模块造成打包的程序达到了230M左右的内存占用量,因此,大家可以把第三步中的循环音乐部分进行删除,打包后的软件仅有9M左右,对这个小程序有兴趣的可以一起来学习一下。


欢迎大家在留言区点评,记得给个三连哦!


1、快了,印有祖师爷图灵的钞票要发行了

2、按下电源后的几秒钟,CPU在干嘛?

3、工作四年,分享50个让你代码更好的小建议

4、良心第三方搜索引擎「多吉搜索」暂停服务

识别关注我们

了解更多精彩内容

点分享

点点赞

点在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存