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

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

#我的Python教程
#官方微信公众号:wdPython

1.使用以下代码需要准备一个素材图片资源,如下图,你可以换成别的。Python经典游戏04:用tkinter给老板写一封拒绝不了的辞职信_第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经典游戏04:用tkinter给老板写一封拒绝不了的辞职信_第2张图片

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()

你可能感兴趣的:(我的Python教程,python,Python教程,tkinter)