尝试在Windows上使用python GUI库实现文件上传的进度对话框窗口,看起来像IE download dialog和Firefox download dialog之间的交叉。
答案 0 :(得分:1)
“ftplib”是Python内置的标准ftp库。在Python 2.6中,它有一个回调参数添加到用于上载的方法。
该回调是您提供给图书馆的功能;对于每个已完成的块,它被调用一次。
您的函数可以向GUI发送消息(可能在不同的线程/进程上,使用标准的线程间或进程间通信)告诉它更新其进度条。
答案 1 :(得分:1)
如果您想要一个完整的示例,说明如何使用线程和事件来使用WxPython更新长期运行的GUI,请查看此page。本教程非常有用,帮助我执行了与您类似的程序。
答案 2 :(得分:1)
如果数据传输在与GUI的单独线程中运行,则只要必须从数据传输线程更新进度条,就可以使用wx.CallAfter()。
首先,使用CallAfter()是必需的,因为无法从子线程调用wxPython函数。
其次,这将在主线程中将数据传输的执行与GUI分离。
请注意,CallAfter()仅适用于线程,不适用于单独的进程。在这种情况下,使用多处理包应该会有所帮助。
答案 3 :(得分:0)
如果你不能使用Python 2.6的ftplib,那么有一家公司提供商业解决方案。
Chilkat的CKFTP2花费数百美元,但承诺可以使用Python 2.5,并提供函数调用get_AsyncBytesSent(),它返回您需要的信息。 (我没有看到回调,但它也可能提供回调。)
我没有使用过这个产品。
另外请注意,如果FTP证明太硬/昂贵,您可以随时切换到HTTP上传。 Chilkat有一个免费的HTTP / HTTPS上传库。