当前位置:首页 > python > 正文

Pycharm制作搞怪弹窗的实现代码


Pycharm制作搞怪弹窗的实现代码

这篇文章主要介绍了Pycharm制作搞怪弹窗(声音强制最大,屏幕亮度强制最亮,按钮躲避,弹窗炸弹),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

闲来无聊用python制作了一个搞怪的桌面弹窗程序,惊喜连连哦

运行动图

Pycharm制作搞怪弹窗的实现代码

实现代码:

  import tkinter as tk  import tkinter.font as tkFont # 引入字体模块  import time  import sys  import pygame  import random  import threading  import win32api  import wmi  from tkinter.messagebox import*    #播放音频  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#否定按钮横坐标    #显示文本  global text  global title  question = "question?"  yes = "OK"  no = "Wait"  title = "I need money"    #播放音频  def Start_music():    path = "mp3/殿堂.mp3"#点击ok按钮后播放的音频,这里替换成你的音频文件地址    pygame.mixer.init()    pygame.mixer.music.load(path)    pygame.mixer.music.play()      #调整屏幕亮度  def ScreenChange() -> object:    SCREEN = wmi.WMI(namespace='rootWMI')    a = SCREEN.WmiMonitorBrightnessMethods()[0]    a.WmiSetBrightness(Brightness=100, Timeout=500)      #调整Windows音量  def changeVd():    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)      #弹窗炸弹  def dow():    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()      #触发弹窗炸弹  def open_start():    threads = []    for i in range(50): # 需要的弹框数量      t = threading.Thread(target=dow)      t.setDaemon(True)      threads.append(t)      time.sleep(0.1)      threads[i].start()      # 新建无法直接关闭的TK类  class NewTk(tk.Tk):    #重写“X”按钮    def destroy(self):      root = tk.Tk()      root.withdraw()      for i in range(3):        if i == 0:          showinfo(title="title1", message="question1")        if i == 1:          showinfo(title="title2", message="question2")        if i == 2:          showinfo(title="title3", message="question3")          global text          text = "title"          global title          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按钮点击事件  def click_yes():    Start_music()    root = tk.Tk()    root.withdraw()    for i in range(5):      if i == 0:        showinfo(title="title1", message="text1")      if i == 1:        showinfo(title="title2", message="text2")      if i == 2:        showinfo(title="title3", message="text3")        global text        text = "text"        global title        title = "title"        open_start()      if i == 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按钮触碰事件  def mouse_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("<Motion>", mouse_in_no_click)  win.mainloop()

学会了吗,快去试一试吧,将文本和图片替换掉又能制造更多的惊喜呦

到此这篇关于Pycharm制作搞怪弹窗的实现代码的文章就介绍到这了,更多相关Pycharm制作弹窗内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

标签:
上一篇: 下一篇:

暂无评论

发表评论

不理你。 不要啊! 吃饭。 吃惊。 吃西瓜。 飞吻! 恭喜! Hi 纠结! 膜拜! OK 抛媚眼。 泡泡糖。 抛钱。 忍! 生闷气! 调皮。 偷看。 委屈。 献花。 疑问? 抓狂!

小提示:Ctrl+Enter快速提交助您一臂之力~
加载中……