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


Posted in Python onFebruary 19, 2021

闲来无聊用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='root\WMI')
  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制作弹窗内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python模拟登陆实现代码
Jun 14 Python
TensorFlow实现AutoEncoder自编码器
Mar 09 Python
JavaScript中的模拟事件和自定义事件实例分析
Jul 27 Python
Python实现注册、登录小程序功能
Sep 21 Python
Python中asyncio模块的深入讲解
Jun 10 Python
django中forms组件的使用与注意
Jul 08 Python
用python实现英文字母和相应序数转换的方法
Sep 18 Python
Python搭建代理IP池实现接口设置与整体调度
Oct 27 Python
基于Python爬取爱奇艺资源过程解析
Mar 02 Python
Python bisect模块原理及常见实例
Jun 17 Python
Python学习之路之pycharm的第一个项目搭建过程
Jun 18 Python
Python getattr()函数使用方法代码实例
Aug 10 Python
python 高阶函数简单介绍
Feb 19 #Python
如何用Matlab和Python读取Netcdf文件
Feb 19 #Python
python中最小二乘法详细讲解
Feb 19 #Python
python中scipy.stats产生随机数实例讲解
Feb 19 #Python
python的scipy.stats模块中正态分布常用函数总结
Feb 19 #Python
python+opencv实现车道线检测
Feb 19 #Python
python UIAutomator2使用超详细教程
Feb 19 #Python
You might like
PHP+javascript模拟Matrix画面
2006/10/09 PHP
Smarty Foreach 使用说明
2010/03/23 PHP
php数组比较实现查找连续数的方法
2015/07/29 PHP
thinkPHP框架对接支付宝即时到账接口回调操作示例
2016/11/14 PHP
php微信公众号开发之关键词回复
2018/10/20 PHP
学习js所必须要知道的一些
2007/03/07 Javascript
javascript 实现父窗口引用弹出窗口的值的脚本
2007/08/07 Javascript
js下用层来实现select的title提示属性
2010/02/23 Javascript
JavaScript call apply使用 JavaScript对象的方法绑定到DOM事件后this指向问题
2011/09/28 Javascript
javascript检查表单数据是否改变的方法
2013/07/30 Javascript
基于jquery的网站幻灯片切换效果焦点图代码
2013/09/15 Javascript
JS+flash实现chrome和ie浏览器下同时可以复制粘贴
2013/09/22 Javascript
jquery实现的用户注册表单提示操作效果代码分享
2015/08/28 Javascript
微信小程序 Audio API详解及实例代码
2016/09/30 Javascript
详解vue-cli快速构建项目以及引入bootstrap、jq
2017/05/26 Javascript
babel之配置文件.babelrc入门详解
2018/02/22 Javascript
IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法
2019/06/04 Javascript
vue+elementui 对话框取消 表单验证重置示例
2019/10/29 Javascript
jquery实现图片放大镜效果
2020/12/23 jQuery
Python使用pickle模块存储数据报错解决示例代码
2018/01/26 Python
python中sort和sorted排序的实例方法
2019/08/26 Python
使用matplotlib绘制图例标签中带有公式的图
2019/12/13 Python
pytorch-RNN进行回归曲线预测方式
2020/01/14 Python
在python里使用await关键字来等另外一个协程的实例
2020/05/04 Python
python如何爬取网页中的文字
2020/07/28 Python
金融事务专业毕业生求职信
2014/02/23 职场文书
社区网格化管理实施方案
2014/03/21 职场文书
读书小明星事迹材料
2014/05/03 职场文书
2014优秀党员事迹材料
2014/08/14 职场文书
2015年酒店服务员工作总结
2015/05/18 职场文书
失恋33天观后感
2015/06/11 职场文书
新西兰:最新留学学习计划书写作指南
2019/07/15 职场文书
Golang生成Excel文档的方法步骤
2021/06/09 Golang
Java 实战项目之家居购物商城系统详解流程
2021/11/11 Java/Android
关于Python中进度条的六个实用技巧分享
2022/04/05 Python
Java实现HTML转为Word的示例代码
2022/06/28 Java/Android