欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

python messagebox.showinfo("窗口名称","点击成功") 弹出这窗口,如何5秒后自动关闭 AG chatgpt 有大用 有大大用

我之前给出的代码确实存在一个问题,即 messagebox.showinfo 在显示消息框时是阻塞的,会阻止后续代码的执行,因此 after() 方法的调用不会生效。

为了解决这个问题,我们可以手动创建一个自定义的消息框,而不是使用 messagebox 模块的默认方法。这样我们可以使用 after 方法自动关闭它。

以下是一个使用 tkinter 创建自定义消息框并在 5 秒后自动关闭的示例代码:

python
import tkinter as tk
from tkinter import messagebox

def show_message():
    # 创建主窗口
    root = tk.Tk()
    root.title("窗口名称")

    # 设置消息框内容
    message = "点击成功"
    
    # 创建一个标签来显示消息
    label = tk.Label(root, text=message, padx=20, pady=20)
    label.pack()

    # 创建一个函数,在 5 秒后关闭窗口
    def close_window():
        root.destroy()

    # 设置 5000 毫秒后调用 close_window 函数
    root.after(5000, close_window)

    # 启动 tkinter 的 mainloop
    root.mainloop()

# 调用函数展示消息框
show_message()

代码解释:

  1. tkinter 初始化:创建一个主窗口 root,并设置窗口标题。

  2. 创建标签:使用 Label 小部件在窗口中显示消息内容。

  3. 定义关闭窗口的函数:定义一个 close_window 函数,它简单地调用 root.destroy() 来关闭窗口。

  4. 设置计时器:使用 root.after(5000, close_window),在 5000 毫秒(5 秒)后调用 close_window,自动关闭窗口。

  5. 启动事件循环:调用 root.mainloop() 启动 tkinter 的事件循环,让窗口保持运行。

运行结果:

当你运行这段代码时,会弹出一个包含 "点击成功" 的窗口,5 秒后自动关闭。这是一个简单的自定义消息框实现,可以根据需要进行扩展或修改。


普通分类: