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()
相关推荐
ZH154558913110 分钟前
Flutter for OpenHarmony Python学习助手实战:面向对象编程实战的实现
python·学习·flutter
玄同76511 分钟前
SQLite + LLM:大模型应用落地的轻量级数据存储方案
jvm·数据库·人工智能·python·语言模型·sqlite·知识图谱
User_芊芊君子16 分钟前
CANN010:PyASC Python编程接口—简化AI算子开发的Python框架
开发语言·人工智能·python
白日做梦Q27 分钟前
Anchor-free检测器全解析:CenterNet vs FCOS
python·深度学习·神经网络·目标检测·机器学习
喵手41 分钟前
Python爬虫实战:公共自行车站点智能采集系统 - 从零构建生产级爬虫的完整实战(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集公共自行车站点·公共自行车站点智能采集系统·采集公共自行车站点导出csv
喵手1 小时前
Python爬虫实战:地图 POI + 行政区反查实战 - 商圈热力数据准备完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·地区poi·行政区反查·商圈热力数据采集
熊猫_豆豆1 小时前
YOLOP车道检测
人工智能·python·算法
nimadan121 小时前
**热门短剧小说扫榜工具2025推荐,精准捕捉爆款趋势与流量
人工智能·python
默默前行的虫虫1 小时前
MQTT.fx实际操作
python
YMWM_1 小时前
python3继承使用
开发语言·python