Python脚本运行时如何显示弹出窗口提示运行状态并在执行完成后自动关闭
Python实现启动弹出运行提示、执行结束自动关闭窗口的方法
最通用的无额外依赖方案是使用Python标准库自带的tkinter实现,不需要安装任何第三方包,适配Windows、macOS、Linux带GUI的环境。
核心思路:将弹窗逻辑放在独立子线程运行,主线程执行你的业务代码,业务代码执行完成后主动触发弹窗销毁逻辑即可。
可直接运行的示例代码
import tkinter as tk from threading import Thread import time # 替换为你实际要执行的业务逻辑 def your_business_logic(): print("业务逻辑开始执行...") time.sleep(5) # 模拟耗时操作,实际使用可删除 print("业务逻辑执行完成") # 执行完成后触发弹窗关闭 root.destroy() # 弹窗渲染逻辑 def show_popup(): global root root = tk.Tk() root.title("进程运行提示") # 自定义弹窗尺寸 root.geometry("300x100") # 禁止用户调整窗口大小,可选 root.resizable(False, False) # 弹窗提示内容 label = tk.Label(root, text="进程正在运行,请稍候...", padx=20, pady=20) label.pack() # 禁用用户手动关闭弹窗,不需要可以删掉这行 root.protocol("WM_DELETE_WINDOW", lambda: None) root.mainloop() if __name__ == "__main__": # 启动弹窗子线程 popup_thread = Thread(target=show_popup) popup_thread.start() # 主线程执行业务逻辑 your_business_logic() # 等待弹窗线程完全退出 popup_thread.join()
注意事项
- 若运行环境为无GUI的纯命令行服务器,
tkinter无法正常渲染弹窗,该场景建议直接在终端打印进度提示即可 - 如果需要更美观的自定义弹窗,可以使用
PyQt5/PySide2等GUI框架实现,核心逻辑和上述方案一致:子线程运行GUI,主线程跑业务逻辑,完成后触发关闭信号即可 - 示例中禁用了用户手动关闭弹窗的操作,如果需要允许用户手动关闭同时终止进程,可以在
WM_DELETE_WINDOW的回调函数中添加终止主线程的逻辑
内容的提问来源于stack exchange,提问作者Rogers
相关产品推荐
相关产品推荐

