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


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

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

    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 函数来处理关闭事件,确保应用程序能够正确地处理窗口关闭操作。

    软件运行时候的效果
    在这里插入图片描述

    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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
  • 相关阅读:
    分布式ID生成方案总结整理
    安卓修改ROM 修改固件中的一些基本常识 自己做rom注意事项
    影响网站最终排名的几个因素
    汽车RNC主动降噪算法DSP C程序实现
    【高项笔记】No.2 网络和网络协议
    6.1 集合概述
    《SpringBoot篇》04.超详细多环境开发介绍
    vscode 远程开发
    构建离线应用:Apollo与本地状态管理
    tomcat
  • 原文地址:https://blog.csdn.net/gxz888/article/details/132804895