我使用 Qt 4.x 编写了一个用 C++ 编写的小文件传输应用程序。它登录到服务器,向用户显示服务器上可用的文件列表,并让用户上传或下载文件。
这一切都很好;您甚至可以从桌面(或从打开的文件夹)中拖入文件,当您将文件图标拖放到服务器文件列表视图中时,拖放的文件会上传到服务器。
现在我也要求采取相反的行动。我的用户希望能够将文件从服务器文件列表视图中拖到桌面上,或者拖到打开的文件夹窗口中,然后将该文件下载到该位置。
这似乎是一个合理的要求,但我不知道如何实现它。当图标被拖放到桌面或打开的文件夹窗口时,Qt 应用程序是否有办法找出与“放置事件”发生的位置相对应的目录?理想情况下,这将是一个基于 Qt 的平台中立机制,但如果不存在,那么 MacOS/X 和 Windows(XP 或更高版本)的特定于平台的机制就足够了。