有趣的PY程序源码——恶搞弹窗

有趣的PY程序源码——恶搞弹窗

八月不落东方叶
2022-12-27 / 0 评论 / 39 阅读 / 正在检测是否收录...

效果展示:
1

import tkinter.messagebox
import tkinter as tk
import random
import threading
import time

def boom():
    window = tk.Tk()
    width = window.winfo_screenwidth()
    height = window.winfo_screenheight()
    a = random.randrange(0, width)
    b = random.randrange(0, height)
    window.title('窗体标题')                                #窗体标题,可填入任意内容
    window.geometry("250x70" + "+" + str(a) + "+" + str(b))    #250x70即为窗体的长宽,可自行修改
    tk.Label(window, text='内容', bg='red', font=('宋体', 17), width=20, height=4).pack()#text参量赋值为窗体内显示内容;bg参量为背景颜色;font字体样式及大小;width宽度;height高度;pack()即部署
    window.mainloop()             #维持窗体

while True:
    tkinter.messagebox.showerror('Windows 错误','你的电脑正在被攻击!')       #系统弹窗内容(<标题>,<内容>)
    threads = []
    for i in range(300):    #循环次数,别太大,小心内存溢出
        t = threading.Thread(target=boom)
        threads.append(t)
        time.sleep(0.01)  #弹窗弹出的速度,可自行设定
        threads[i].start()
接下来讲一下代码思路:
首先导入我们所需的模块,导入方法 import
代码如下
import tkinter.messagebox
import tkinter as tk
import random
import threading
import time

程序主体部分

因为要实现无限弹窗,自然要用循环结构,此处用while结构
即为

while True:

tkinter模块创建一个窗体对象,具体如下:

tkinter.messagebox.showerror('Windows 错误','你的电脑正在被攻击!')  #第一个参量为窗体标题,第二个参量为窗体内容

创建一个列表threads,用于存储执行线程

while循环内再一个循环可限定循环次数

然后使用treading中的Thread()函数来启动一个个进程,每一个进程都被存入了threads
并且用sleep()函数来暂停程序,以降低对CPU的算力压力
Thread()函数中target参量意思是启动的对象,对象即为我们的自定义函数boom()
他们整体为一个进程存入对象t中,并且存入threads列表中
即为以下函数::

    threads = []
    for i in range(300):    #循环次数,别太大,小心内存溢出
        t = threading.Thread(target=boom)
        threads.append(t)
        time.sleep(0.01)
        threads[i].start()

程序自定义代码部分

因为目的是通过一次次调用自定义函数来创建一个个窗体,因此我们自定义函数就是为了创建一个窗体
首先通过语句

window = tk.Tk()

来创建一个窗体对象window
然后再通过语句

    a = random.randrange(0, width)
    b = random.randrange(0, height)
    width = window.winfo_screenwidth()
    height = window.winfo_screenheight()
    window.geometry("250x70" + "+" + str(a) + "+" + str(b))

来让窗体在屏幕的随机位置出现,并确定窗体大小

通过语句

    tk.Label(window, text='内容', bg='red', font=('宋体', 17), width=20, height=4).pack()#text参量赋值为窗体内显示内容;bg参量为背景颜色;font字体样式及大小;width宽度;height高度

设置窗体内容
最关键的一个函数mainloop()来维持窗体的存在

5

评论 (0)

取消