我觉得起这个题目,会让我的这篇博客点击量超过其他所有,哈哈哈。
话不多说,开始
前言
事情的起因还要追溯到几个星期之前,有个同学说他要给女神写个程序,我就突然想到了以前在网上找到的一个表白小程序,现在我台式机里应该还有,就是那种按钮会跳的那种,恰巧这学期我们有python课,顺便巩固一下tkinter的界面编写知识,我就决定用python自己写一个(手动狗头)
思路
- 跳出窗口,问她:愿意做我女朋友吗?(…)
- 当然,得给人家两个选择,同意or不同意
- 这样她就得选,不过,怎么能让她选不同意呢。不同意的按钮会不停地跳;选同意的话会出来一张图片
- 这样你们就能一起过上幸福快乐的生活了(手动狗头)
代码实现
- 图形界面
这个我用的python自带的tkinter,这个比较简单,当然还可以用Qt等其他的第三方库,不过我没下,大佬如果实现了可以告诉我一声
top=tk.Tk()
top.title('Love')
top.geometry('400x300')
word=tk.Label(top,text='可以做我女朋友吗?',font=('华文行楷','20'))
word.place(x=80,y=80)
Button1=tk.Button(top,text='我愿意!',command=wondful)
Button1.place(x=100,y=150)
place_of_tick=[(10,10),(180,40),(180,130),(30,200),(250,200),(270,230)]
word_of_tick=['不再考虑一下','好伤心','不要!','保大人','Love'] #这两个数组和按钮的位置改变有关,分别定义了按钮随机跳的位置和随机显示的文字
tick=tk.Button(top,text='滚',command=move,width='8')
tick.place(x=220,y=150)
top.mainloop()
记得导入库,还用到的是random库,用于生成随机值,让按钮随机跳
- 按钮跳动
这个比较简单,在按下按钮时执行move函数,此时,随机重置按钮位置和文字即可,我用的是一种伪随机吧,位置是我提前试好的,为了不遮挡另一个按钮和文字,当然,你可以再加几个文字或位置
def move():
tick.configure(text=word_of_tick[randint(0,len(word_of_tick)-1)])
t=randint(0,len(place_of_tick)-1)
x=place_of_tick[t][0]
y=place_of_tick[t][1]
tick.place(x=x,y=y)
- 显示图片
在点了“我愿意”按钮后,让她出现一张图片,这个有点麻烦,我找了好多资料才搞定这个,感谢网上分享经验的师傅大佬们。
试了好多方法,本来想用tkinter的canvas的,不知道为什么,我的图片不显示,但是能在上面画个图形(???黑人问号),没办法,从网上看到有人用的Label,我也就用了这个,也不知道为什么要给image参数赋两次值,大佬如果会可以告诉我一声。
这里还用到了PIL库,python27应该还是pillow库,好像处理图片都得和他扯上关系…
def wondful():
a=Image.open('timg.jpg')
im=ImageTk.PhotoImage(a)
ima=tk.Label(top,image=im)
ima.image=im
ima.pack()
我的变量命名有点随意了,请忽略这个(汗,英语不好)。
- 完成打包
这也是python写这种程序的弊端,你得打包成exe才能到没装python的电脑上运行,相信你们的妹子也不太可能在电脑上装python吧,当然,找个学计算机的女朋友也挺好,不过这个种水平的还是不要给你学计算机的女朋友发了吧,她看了源码可能会嘲笑你水平低。。。
再说打包,我用的是pyinstaller,命令,这里我直接挂一个博客,关于pyinstaller的,需要的自己去看看 https://blog.csdn.net/chenzhanhai/article/details/85334919
pyinstaller -F -w XX.py
(xx是文件名)
这样你就可以给妹子发了