
用Python做个年会抽奖小程序吧
来源:
浏览:124
时间:2023-08-10
又到了每年一度的年会,最期盼的可能就是抽奖环节了。如果大家都吐槽抽奖不公,那不如用程序来抽吧。
实现思路
在屏幕上不断滚动名字,然后点击停止后停止滚动。名单是保存在excel中,所以需要从excel解析出名单。有思路了,那就开始吧。
素材准备
先找一张背景图吧,有鼓,那么就把鼠标变成鼓槌,敲一下鼓开始滚动,再敲一下鼓就停止滚动,依次循环。思想不错,那就这么实现吧。
还需要一个鼓槌的图片,如下图片。但是该图背景是白色的,在红色背景图片
上的绘制出来会是白色图片,所以需要将图片白色背景修改为透明。只能自己动手,装个Photoshop来修改了。具体方法百度一下就可以了很简单。
没有背景音乐有点乏味,那就加个背景音乐吧,网上找了一个鼓声的短音乐。
万事俱备只欠撸码
按功能块大概说说:
- 由于数据存在excel中,所以需要将excel的数据解析,并导入内存。我是用tuple的list来保存的。数据模型,[(工号,名字)],用到的库 import xlrd;
- UI界面就用了游戏编程使用的pygame包,import pygame即可(前提是已经安装了pygame);
- 背景音乐和鼠标替换都使用pygame的接口:
- 音乐:
- pygame.mixer.init()
- pygame.mixer.music.load('9224.wav')
- pygame.mixer.music.play()
- pygame.mixer.music.stop()
- 鼠标替换:
- 思路就是隐藏鼠标,然后在鼠标的位置绘制图片即可。
- x, y = pygame.mouse.get_pos()
- x -= m.get_width() / 2
- y -= m.get_height() / 2
- pygame.mouse.set_visible(False)
- screen.blit(m, (x, y))
- 打包为exe,让其在任何一台windows电脑都能飞起来:
- 一直用的pyinstaller,还是比较方便好用,依赖的数据文件别忘记copy到exe目录下即可。
- os.system("pyinstaller -F Annual_awards_main.py")
- os.system("copy 9224.wav dist\")
- os.system("copy bg_1366x768.png dist\")
效果预览
完整源码
完整源码可以私信提供,如果需要也可以量身修改
2019年换个背景图片就能用
编程有时候能够带给我们乐趣


