Pycharm制作搞怪弹窗的实现代码
闲来无聊用python制作了一个搞怪的桌面弹窗程序,惊喜连连哦
运行动图
实现代码:
importtkinterastk
importtkinter.fontastkFont#引入字体模块
importtime
importsys
importpygame
importrandom
importthreading
importwin32api
importwmi
fromtkinter.messageboximport*
#播放音频
path="mp3/暗恋.mp3"#一开始的音乐,替换成你的地址
pygame.mixer.init()
pygame.mixer.music.load(path)
pygame.mixer.music.play()
#设置样式
WINWIDTH=800#窗体宽度
WINHEIGHT=600#窗体高度
WINX=400#弹窗横坐标
WINY=100#弹窗纵坐标
img_x=250#设置图片横坐标
img_y=100#设置图片纵坐标
question_x=250#设置问题横坐标
question_y=60#设置问题纵坐标
button_width=100#设置按钮宽度
button_height=40#设置按钮高度
button_y=520#按钮纵坐标
yes_button_x=img_x-button_width//2#确定按钮横坐标
no_button_x=WINWIDTH-img_x-button_width//2#否定按钮横坐标
#显示文本
globaltext
globaltitle
question="question?"
yes="OK"
no="Wait"
title="Ineedmoney"
#播放音频
defStart_music():
path="mp3/殿堂.mp3"#点击ok按钮后播放的音频,这里替换成你的音频文件地址
pygame.mixer.init()
pygame.mixer.music.load(path)
pygame.mixer.music.play()
#调整屏幕亮度
defScreenChange()->object:
SCREEN=wmi.WMI(namespace='root\WMI')
a=SCREEN.WmiMonitorBrightnessMethods()[0]
a.WmiSetBrightness(Brightness=100,Timeout=500)
#调整Windows音量
defchangeVd():
WM_APPCOMMAND=0x319
APPCOMMAND_VOLUME_MAX=0x0a
APPCOMMAND_VOLUME_MIN=0x09
#音量最大
win32api.PostMessage(-1,WM_APPCOMMAND,0x30292,APPCOMMAND_VOLUME_MAX*0x10000)
#音量最小
#win32api.PostMessage(-1,WM_APPCOMMAND,0x30292,APPCOMMAND_VOLUME_MIN*0x10000)
#弹窗炸弹
defdow():
window=tk.Tk()
width=window.winfo_screenwidth()
height=window.winfo_screenheight()
a=random.randrange(0,width)
b=random.randrange(0,height)
window.title(title)
window.geometry("300x50"+"+"+str(a)+"+"+str(b))
tk.Label(window,
text=text,#标签的文字
#bg='white',#背景颜色
font=('楷体',17),#字体和字体大小
width=15,height=2#标签长宽
).pack()#固定窗口位置
window.mainloop()
#触发弹窗炸弹
defopen_start():
threads=[]
foriinrange(50):#需要的弹框数量
t=threading.Thread(target=dow)
t.setDaemon(True)
threads.append(t)
time.sleep(0.1)
threads[i].start()
#新建无法直接关闭的TK类
classNewTk(tk.Tk):
#重写“X”按钮
defdestroy(self):
root=tk.Tk()
root.withdraw()
foriinrange(3):
ifi==0:
showinfo(title="title1",message="question1")
ifi==1:
showinfo(title="title2",message="question2")
ifi==2:
showinfo(title="title3",message="question3")
globaltext
text="title"
globaltitle
title="text"
open_start()
#主程序体
thread=threading.Thread(target=changeVd)
thread.setDaemon(True)
thread.start()
ScreenChange()
win=NewTk()
win.title(title)
win.geometry("%sx%s+%s+%s"%(WINWIDTH,WINHEIGHT,WINX,WINY))#样式设置
win.resizable(0,0)#阻止窗口大小化
photo=tk.PhotoImage(file="lib/没钱了.gif")#这里替换成你的图片地址
imgLabel=tk.Label(win,image=photo)#将图片添加至窗口
imgLabel.place(x=img_x,y=img_y)#设置图片位置
question_text=tkFont.Font(size=20,weight=tkFont.BOLD)
q=tk.Label(win,text=question,font=question_text)
q.place(x=question_x,y=question_y)
#OK按钮点击事件
defclick_yes():
Start_music()
root=tk.Tk()
root.withdraw()
foriinrange(5):
ifi==0:
showinfo(title="title1",message="text1")
ifi==1:
showinfo(title="title2",message="text2")
ifi==2:
showinfo(title="title3",message="text3")
globaltext
text="text"
globaltitle
title="title"
open_start()
ifi==3:
print("运行退出程序")
sys.exit(0)
yes_button=tk.Button(win,text=yes,command=click_yes)
yes_button.place(x=yes_button_x,y=button_y,width=button_width,height=button_height)
no_button=tk.Button(win,text=no)
no_button.place(x=no_button_x,y=button_y,width=button_width,height=button_height)
#NO按钮触碰事件
defmouse_in_no_click(event):
bx,by=random.randint(button_width,WINWIDTH-button_width),random.randint(button_height,WINHEIGHT-button_height)
no_button.place(x=bx,y=by)
no_button.bind("",mouse_in_no_click)
win.mainloop()
学会了吗,快去试一试吧,将文本和图片替换掉又能制造更多的惊喜呦
到此这篇关于Pycharm制作搞怪弹窗的实现代码的文章就介绍到这了,更多相关Pycharm制作弹窗内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。