拖放到桌面或特定文件夹中,无需临时存储。

时间:2013-06-27 04:44:42

标签: c++ qt drag-and-drop qt4

我用Qt 4.x编写了一个用C ++编写的小文件传输应用程序。它登录到服务器,向用户显示服务器上可用的文件列表,并允许用户上载或下载文件。

这一切都很好;您甚至可以从桌面(或从打开的文件夹)拖入文件,当您将文件图标放入server-files-list-view时,删除的文件将上传到服务器。

现在我也要求采取相反的行动。我的用户希望能够将文件从server-files-list-view拖到桌面上,或者拖到打开的文件夹窗口中,然后将该文件下载到该位置。

这似乎是一个合理的要求,但我不知道如何实现它。有没有办法让Qt应用程序找到与“drop event”发生位置相对应的目录,当图标被放到桌面上或打开文件夹窗口时?理想情况下,这将是一个基于Qt的平台中立机制,但如果不存在,那么MacOS / X和Windows(XP或更高版本)的平台特定机制就足够了。

1 个答案:

答案 0 :(得分:0)

即使我从未完全按照您的意图行事,我认为这对Qt来说是可行的。

首先必须处理拖动事件。这取决于您用来查看服务器中的文件的视图。无论如何,这里有一个链接,可以帮助您从视图中启用拖动文件:http://www.trinitydesktop.org/docs/qt4/model-view-dnd.html简而言之,它只是一个重新实现的虚拟功能。该医生随时为您提供帮助。

您可能还会看到有关如何在Qt中处理拖放事件的链接:http://www.trinitydesktop.org/docs/qt4/dnd.html

当我注意到3年前一个字一个字地问到同样的问题时,我正要回答有关掉落事件的问题。 Qt 4.x: how to implement drag-and-drop onto the desktop or into a folder?