【发布时间】:2011-02-13 00:48:13
【问题描述】:
我使用 Qt 4.x 编写了一个用 C++ 编写的小文件传输应用程序......它登录到服务器,向用户显示服务器上可用文件的列表,并让用户上传或下载文件.
这一切都很好;您甚至可以从桌面(或打开的文件夹)拖入文件,当您将文件图标拖放到服务器文件列表视图中时,拖放的文件会上传到服务器。
现在我也请求执行相反的操作...我的用户希望能够将文件从服务器文件列表视图中拖到桌面上,或者拖到打开的文件夹窗口中,并将该文件下载到该位置。
这似乎是一个合理的要求,但我不知道如何实现它。当图标被拖放到桌面或打开的文件夹窗口时,Qt 应用程序是否有办法找出与“放置事件”发生的位置相对应的目录?理想情况下,这将是一个基于 Qt 的平台中立机制,但如果不存在,那么适用于 MacOS/X 和 Windows(XP 或更高版本)的平台特定机制就足够了。
有什么想法吗?
【问题讨论】:
-
我很久以前就尝试使用 Qt 4.2 执行此操作,但没有找到正确执行此操作的方法。但也许有人可以提出解决方案?
-
看我的回复,你不能轻易跨平台。例如,windows 需要 shell 扩展,除非您将文件下载到临时目录,然后让 windows 将其复制到正确的位置。
-
@Jeremy Friesner 你能在不冻结你的 gui 的情况下解决这个问题吗?我需要实现一些非常相似的东西..
-
@atamanroman 不,我还没有找到满意的解决方案:(
-
@JeremyFriesner hay 我发布了一个类似的问题,我想我可能在 FileZilla 的源代码中找到了一种可能的解决方案。以防你仍然感兴趣stackoverflow.com/questions/38804272/…
标签: c++ qt drag-and-drop desktop directory