加个判断条件,判断当开始下载的时候,弹出一个对话框,下载完成之后对话框关闭
时间: 2024-10-09 11:01:53 浏览: 27
在原代码的基础上,我们可以使用Python的`threading`模块结合Tkinter库创建一个简单的弹窗提示。首先,我们需要导入必要的库:
```python
import threading
import tkinter as tk
from tkinter import messagebox
def show_popup(message, is_download_start=False):
# 创建一个临时窗口
root = tk.Tk()
if is_download_start:
messagebox.showinfo('下载开始', message) # 显示开始下载信息
else:
messagebox.showinfo('下载完成', message) # 显示下载完成信息
root.withdraw() # 隐藏主窗口
root.protocol("WM_DELETE_WINDOW", lambda: root.destroy()) # 关闭时销毁窗口
def downloadfile(localpath, remotepath):
"""
:param localpath: 本地路径
:param remotepath: 服务器文件路径
:return:
"""
def _download():
try:
file = open(localpath, 'wb')
ftp.retrbinary("RETR " + remotepath, file.write, 1024) # 下载文件
ftp.set_debuglevel(0) # 关闭调试信息
show_popup("下载已完成", is_download_start=True)
except Exception as e:
show_popup(f"下载失败:{str(e)}", is_download_start=True)
# 启动下载线程
thread = threading.Thread(target=_download)
thread.start()
# 等待下载完成
thread.join()
```
这个修改版的`downloadfile`函数添加了一个`is_download_start`参数,用于在开始下载时设置为True。当下载开始时,`show_popup`函数会显示下载开始的信息;下载完成时,则显示下载完成的信息。
如果下载过程中发生错误,异常会被捕获并在下载开始提示中显示错误信息。请注意,在实际应用中,您可能需要更详细的错误处理和日志记录。
阅读全文