Python经典游戏04:用tkinter给老板写一封拒绝不了的辞职信

★★★★★博文原创不易,我的博文不需要打赏,也不需要知识付费,可以白嫖学习编程小技巧。**如果使用代码的过程,有疑问的地方,欢迎大家指正留言交流。**喜欢的老铁可以多多帮忙点赞,小红牛在此表示感谢。★★★★★

python 复制代码
#我的Python教程
#官方微信公众号:wdPython

1.使用以下代码需要准备一个素材图片资源,如下图,你可以换成别的。
只有点击同意程序才能退出去,否则关不掉,这是网上很火的一个小游戏,仅供大家学习实用。运用到以下知识点

#1. tkinter.destroy() 是一个用于销毁 Tkinter GUI 窗口的方法。当调用该方法时,窗口及其所有子元素将被逐步删除,并释放系统资源。

#2. tkinter.Toplevel() 是 Tkinter 库中的一个类,用于创建新的顶级窗口(即弹出窗口)。这些窗口独立于主窗口,并且可以包含自己的控件和子窗口。

#3.tkinter.protocol("WM_DELETE_WINDOW", closeWindow) 是一个在 Tkinter 库中用于注册窗口关闭事件的语句。具体来说,WM_DELETE_WINDOW 是一个标准的窗口系统消息,通常用于处理用户点击窗口的关闭按钮(叉号或 X)时的行为。当用户尝试关闭窗口时,系统将发送该消息给应用程序,以便应用程序有机会进行必要的清理和退出操作。

tkinter.protocol 函数用于注册一个处理函数,当接收到指定的消息时将被调用。在这个例子中,"WM_DELETE_WINDOW" 是要注册的消息类型,而 closeWindow 是与该消息关联的处理函数。

closeWindow 是一个自定义的函数,用于处理窗口关闭事件。通常,它会执行一些清理工作,比如保存数据、释放资源等,然后调用 destroy 方法来销毁窗口。

通过将 "WM_DELETE_WINDOW" 与 closeWindow 关联,当用户尝试关闭窗口时,Tkinter 将自动调用 closeWindow 函数来处理关闭事件,确保应用程序能够正确地处理窗口关闭操作。

软件运行时候的效果

python 复制代码
import random
import tkinter as tk
from tkinter import messagebox
from PIL import Image, ImageTk

def closeWindow():
    messagebox.showinfo(title="同意提示", message="只有点同意才能关掉窗口啊~")
    return

def agree():
    #创建新的窗口
    top = tk.Toplevel(root)
    top.geometry("500x150+{}+{}".format(int(( width) / 2),int((height) / 2)))
    top.title("辞职信")
    label = tk.Label(top, text="爱卿,终于同意来了?", font=("华文行楷", 20))
    label.pack()
    btn = tk.Button(top, text="我同意", width=6, height=1,command=root.destroy)
    btn.pack()

def disagree():
    B2.place_forget()
    B2.place(x=random.randint(150, 500), y=random.randint(150, 500))

if __name__ == '__main__':
    
    root = tk.Tk()
    root.title('这是朕的辞职信')
    width = 600
    height = 650
    root.resizable(width=False, height=True)
    root.geometry('600x600')
    root.protocol("WM_DELETE_WINDOW", closeWindow)
    #显示图片
    load = Image.open('辞职信.png').resize((300, 310))
    render = ImageTk.PhotoImage(load)
    L2 = tk.Label(root, image=render)
    L2.place(x=150, y=100)
    B1 = tk.Button(root, text='同意', command=agree)
    B1.place(x=155, y=420)
    B2 = tk.Button(root, text='不同意', command=disagree)
    B2.place(x=400, y=420)
    root.mainloop()
相关推荐
2601_962078193 小时前
Python中calendar.weekday用法
python·编程技巧·calendar·日期处理·weekday
2601_962218613 小时前
万象生鲜系统业财一体化底层打通技术自动生成经营账单
大数据·数据库·人工智能·python·算法
2601_966949653 小时前
为什么量化策略需要大量历史股票数据?从回测可信度理解数据规模
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
2601_962885723 小时前
如何用 Python 扫描 A 股跳空缺口并统计缺口回补概率?
java·前端·python
李高钢4 小时前
Python FastAPI 框架入门:从零搭建你的第一个高性能 API 服务
数据库·python·fastapi
ocean21034 小时前
2025-2026年Python面试高频知识点洞察
开发语言·python·面试·python八股文
Warson_L5 小时前
Python的OrderedDict
python
隐擎fox5 小时前
高性能网络爬虫架构设计:基于 Python 的长连接复用与分布式会话池调度实践
分布式·python·网络协议·tcp/ip·高并发·网络爬虫、
Warson_L5 小时前
Python的TypedDict
python·langchain·llm
晓窗科技6 小时前
口碑好的AI基座服务商
大数据·人工智能·python