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()
相关推荐
笨鸟先飞,勤能补拙9 小时前
AI 赋能网络安全:技术全景、成熟度评估与实战案例
人工智能·python·安全·web安全·网络安全·sqlite·github
长和信泰光伏储能10 小时前
京津冀光伏发电:绿色能源的未来之路
python·能源
浦信仿真大讲堂10 小时前
从重复操作到自动化闭环:如何让 CST 与 Python 真正协同起来
python·自动化·cst·仿真软件·达索软件
Gu Gu Study11 小时前
ScoutLoop开放域深度研究引擎(agent的初步设计想法)
人工智能·python
卷无止境12 小时前
写代码这件事,到底该讲究点什么?
后端·python
卷无止境12 小时前
循环复杂度到底在算什么,Python 代码怎么才能写得让人一看就懂
后端·python
lpfasd12312 小时前
MediaCrawler 项目深度分析
chrome·python·chrome devtools
Dxy123931021612 小时前
Python项目打包成EXE完整教程(PyInstaller实战避坑)
开发语言·python
bamb0013 小时前
一个项目带你入门AI应用开发01
python
05664613 小时前
Python康复训练——常用标准库
开发语言·python·学习