Python使用pycharm实现无限弹窗程序

 更新时间:2024年01月28日 15:57:03   作者:CDTU iron fan  
这篇文章主要为大家详细介绍了Python如何,pycharm实现无限弹窗程序,当然这一程序非病毒程序,仅整蛊使用,感兴趣的小伙伴可以了解一下

运行环境

PyCharm 2023.2.1

python3.11

具体内容

源代码

import tkinter as tk
from tkinter import messagebox
import threading
 
class PopupGenerator:
    def __init__(self):
        self.root = tk.Tk()
        self.root.geometry("200x120")
        self.root.title("无限弹窗")
        self.root.protocol("WM_DELETE_WINDOW", lambda: None)  # 用户不可关闭弹窗一
        self.common_style = {"font": ("华文新魏", 14)}
        self.label = tk.Label(self.root, text="恭喜你打开了这个程序", **self.common_style, fg="red")
        self.label.pack(pady=20)
        self.close_program_button = tk.Button(self.root, text="关闭程序", command=self.try_detox, **self.common_style,
                                              bg="green", fg="white")
        self.close_program_button.pack(pady=10)
        self.popup_count = 0
        self.detox_attempts = 0
        self.popup_positions = []  # 存储已存在弹窗的位置信息
        self.generate_popup()
 
    def generate_popup(self):
        if self.popup_count < 20:
            popup = tk.Toplevel(self.root)
            popup.title("无限弹窗")
            popup.geometry("200x120")
            # 检查已存在弹窗的位置,设置新弹窗的位置
            x, y = self.calculate_popup_position(popup.winfo_reqwidth(), popup.winfo_reqheight())
            popup.geometry(f"+{x}+{y}")
            popup_label = tk.Label(popup, text="多试一下", fg="blue", **self.common_style)
            popup_label.pack(pady=20)
            popup.protocol("WM_DELETE_WINDOW", self.on_popup_close)
            self.popup_count += 1
            threading.Timer(1, self.generate_popup).start()
 
    def calculate_popup_position(self, width, height):
        # 计算新弹窗的位置,避免重叠
        x_offset, y_offset = 25, 25
        x = self.root.winfo_x() + x_offset + len(self.popup_positions) * x_offset
        y = self.root.winfo_y() + y_offset + len(self.popup_positions) * y_offset
        # 存储新弹窗的位置信息
        self.popup_positions.append((x, y))
        return x, y
 
    def on_popup_close(self):
        self.generate_additional_popup()
 
    def generate_additional_popup(self):
        additional_popup = tk.Toplevel(self.root)
        additional_popup.title("无限弹窗")
        additional_popup.geometry("200x120")
        # 检查已存在弹窗的位置,设置新弹窗的位置
        x, y = self.calculate_popup_position(additional_popup.winfo_reqwidth(), additional_popup.winfo_reqheight())
        additional_popup.geometry(f"+{x}+{y}")
        additional_popup_label = tk.Label(additional_popup, text="并没有用", fg="purple", **self.common_style)
        additional_popup_label.pack(pady=20)
 
    def try_detox(self):
        self.detox_attempts += 1
        if self.detox_attempts <= 10:
            messagebox.showinfo("温馨提示", f"你不会觉得点了 {self.detox_attempts} 次就有用吧")
        else:
            messagebox.showinfo("没想到啊", f"你居然坚持点了 {self.detox_attempts}次")
            self.root.destroy()
 
if __name__ == "__main__":
    popup_generator = PopupGenerator()
    popup_generator.root.mainloop()

运行结果

如下图

点击运行时

点击关闭程序按钮(未点击足够次数)

点击关闭程序按钮(点击次数足够)

关闭多试一下弹窗(仅并没有用弹窗可关闭)

关闭程序的方法

1、任务管理器结束任务

2、点击足够次数的关闭程序

注意事项

1、没有什么技术含量,仅娱乐使用

到此这篇关于Python使用pycharm实现无限弹窗程序的文章就介绍到这了,更多相关Python pycharm无限弹窗内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python区块链块的添加教程

    Python区块链块的添加教程

    这篇文章主要为大家介绍了Python区块链块的添加教程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • python录音并调用百度语音识别接口的示例

    python录音并调用百度语音识别接口的示例

    这篇文章主要介绍了python录音并调用百度语音识别接口的示例,帮助大家更好的理解和利用python处理音频,感兴趣的朋友可以了解下
    2020-12-12
  • Django开发RESTful API实现增删改查(入门级)

    Django开发RESTful API实现增删改查(入门级)

    这篇文章主要介绍了Django开发RESTful API实现增删改查(入门级),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • python 第三方库paramiko的常用方式

    python 第三方库paramiko的常用方式

    这篇文章主要介绍了python 第三方库paramiko的常用方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • Python的for和break循环结构中使用else语句的技巧

    Python的for和break循环结构中使用else语句的技巧

    平时我们把在if结构中使用else语句当作理所当然,然而,Python强大的语法糖可以让else语句在for和while循环中使用!下面我们就通过例子来看一下Python的for和break循环结构中使用else语句的技巧
    2016-05-05
  • Python 列表的基本操作介绍

    Python 列表的基本操作介绍

    这篇文章主要介绍了Python 列表的基本操作,下面文章围绕Python 列表的相关资料展开文章的详细内容,,需要的朋友可以参考一下,希望对大家有所帮助
    2021-11-11
  • python中的正斜杠与反斜杠实例验证

    python中的正斜杠与反斜杠实例验证

    这篇文章主要介绍了python中的正斜杠与反斜杠实例验证,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • Python Numpy 自然数填充数组的实现

    Python Numpy 自然数填充数组的实现

    今天小编就为大家分享一篇Python Numpy 自然数填充数组的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • PyCharm刷新项目(文件)目录的实现

    PyCharm刷新项目(文件)目录的实现

    今天小编就为大家分享一篇PyCharm刷新项目(文件)目录的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python实现简单的文件传输与MySQL备份的脚本分享

    Python实现简单的文件传输与MySQL备份的脚本分享

    这篇文章主要介绍了Python实现简单的文件传输与MySQL备份的脚本分享,用到了socket与tarfile模块,需要的朋友可以参考下
    2016-01-01

最新评论