运行环境
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、没有什么技术含量,仅娱乐使用
猜你喜欢
- 14天前(a级景区评定机构)全国A级旅游景区创建与提升培训班在敦煌市举办
- 14天前(三亚海棠湾君悦度假酒店)三亚海棠湾君悦酒店暑期夏令营悦趣海岛游招募中
- 14天前(杭州西湖区万怡酒店正式开业了吗)杭州西湖区万怡酒店正式开业
- 14天前(安徽民航君澜大饭店装饰设计招标)集东方文化气息,品徽派隽美风韵----安徽民航君澜大饭店静待绽放
- 14天前(四川推进世界重要旅游目的地建设工作)四川推进世界重要旅游目的地建设
- 14天前(三亚太阳湾柏悦度假酒店)三亚太阳湾柏悦酒店携手ROSEONLY诺誓缔造浪漫七夕
- 14天前(澳涞山庄见证北欧零碳到中国实践,世界十佳环境保护城市榜单发布)澳涞山庄见证北欧零碳到中国实践,世界十佳环境保护城市榜单发布
- 14天前(希尔顿集团2021年筹建的酒店)希尔顿集团两大重点项目亮相第四届上海旅游投资促进大会
- 14天前(辽宁新增6个国家4a级旅游景区有哪些)辽宁新增6个国家4A级旅游景区
- 14天前(“百场黄梅唱响百家景区”示范演出活动在黄山风景区举行)“百场黄梅唱响百家景区”示范演出活动在黄山风景区举行
网友评论
- 搜索
- 最新文章
- (2020广州车展哈弗)你的猛龙 独一无二 哈弗猛龙广州车展闪耀登场
- (哈弗新能源suv2019款)智能科技颠覆出行体验 哈弗重塑新能源越野SUV价值认知
- (2021款全新哈弗h5自动四驱报价)新哈弗H5再赴保障之旅,无惧冰雪护航哈弗全民电四驱挑战赛
- (海南航空现况怎样)用一场直播找到市场扩张新渠道,海南航空做对了什么?
- (visa jcb 日本)优惠面面俱到 JCB信用卡邀您畅玩日本冰雪季
- (第三届“堡里有年味·回村过大年”民俗花灯会活动)第三届“堡里有年味·回村过大年”民俗花灯会活动
- (展示非遗魅力 长安启源助力铜梁龙舞出征)展示非遗魅力 长安启源助力铜梁龙舞出征
- (阿斯塔纳航空公司)阿斯塔纳航空机队飞机数量增至50架
- (北京香港航班动态查询)香港快运航空北京大兴新航线今日首航
- (我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉)我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉
- 热门文章