欢迎各位兄弟 发布技术文章
这里的技术是共享的
我之前给出的代码确实存在一个问题,即 messagebox.showinfo 在显示消息框时是阻塞的,会阻止后续代码的执行,因此 after() 方法的调用不会生效。
为了解决这个问题,我们可以手动创建一个自定义的消息框,而不是使用 messagebox 模块的默认方法。这样我们可以使用 after 方法自动关闭它。
以下是一个使用 tkinter 创建自定义消息框并在 5 秒后自动关闭的示例代码:
pythonimport 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()
tkinter 初始化:创建一个主窗口 root,并设置窗口标题。
创建标签:使用 Label 小部件在窗口中显示消息内容。
定义关闭窗口的函数:定义一个 close_window 函数,它简单地调用 root.destroy() 来关闭窗口。
设置计时器:使用 root.after(5000, close_window),在 5000 毫秒(5 秒)后调用 close_window,自动关闭窗口。
启动事件循环:调用 root.mainloop() 启动 tkinter 的事件循环,让窗口保持运行。
当你运行这段代码时,会弹出一个包含 "点击成功" 的窗口,5 秒后自动关闭。这是一个简单的自定义消息框实现,可以根据需要进行扩展或修改。